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