[Boost-bugs] [Boost C++ Libraries] #2407: [Proto] Error while using operator<< and iostream

Subject: [Boost-bugs] [Boost C++ Libraries] #2407: [Proto] Error while using operator<< and iostream
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-10-12 14:58:47


#2407: [Proto] Error while using operator<< and iostream
----------------------------------------------+-----------------------------
 Reporter: Joel Falcou <joel.falcou_at_[hidden]> | Type: Bugs
   Status: new | Milestone: Boost 1.37.0
Component: None | Version: Boost Development Trunk
 Severity: Problem | Keywords: Proto
----------------------------------------------+-----------------------------
 Bug found in the "[Boost-users] [Proto] Strange behavior with semantic
 action and custom tag function" threads.

 Quoting Eric :
 "The operator<< in the output expression can potentially match either the
 ostream inserter we've defined above or Proto's operator<<. Proto's
 operator overload *should* be disabled with SFINAE because the resulting
 expression type doesn't match the domain's grammar. But the failure
 happens before we get that far. Before checking the return type against
 the grammar, Proto first calculates the return type, which first involves
 Protofying std::cout, resulting in e<proto::terminal<std::ostream
 &>::type>. This is where the failure occurs because this simple terminal
 expression *also* doesn't match the grammar. That triggers the static
 assertion failure in e<>."

-- 
Ticket URL: <http://svn.boost.org/trac/boost/ticket/2407>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:58 UTC