Subject: [Boost-bugs] [Boost C++ Libraries] #9580: [spirit.lex] self("state") += calls a wrong operator +=
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-01-16 00:38:18
#9580: [spirit.lex] self("state") += calls a wrong operator +=
-------------------------------------+---------------------
Reporter: Vyacheslav Andrejev | Owner: djowel
Type: Bugs | Status: new
Milestone: To Be Determined | Component: spirit
Version: Boost Development Trunk | Severity: Problem
Keywords: |
-------------------------------------+---------------------
This construct
{{{
#!cpp
this->self("SOME_STATE") += someTokenDef;
}}}
doesn't call
{{{
#!cpp
template <typename LexerDef, typename Expr>
inline lexer_def_<LexerDef>&
boost::spirit::lex::detail::operator+= (lexer_def_<LexerDef>&
lexdef, Expr&& xpr)
}}}
as it should in order for the definition get added to the lexer. Instead
this operator
{{{
#!cpp
template <typename Left, typename Right>
typename boost::proto::detail::enable_binary<
deduce_domain
, deduce_domain::proto_grammar
, boost::mpl::or_<is_extension<Left>, is_extension<Right> >
, boost::proto::tag::plus_assign
, Left const &
, Right const &
>::type const
operator +=(Left &&left, Right &&right)
{
return boost::proto::detail::make_expr_<
boost::proto::tag::plus_assign
, deduce_domain
, Left const &
, Right const &
>()(left, right);
}
}}}
is called from boost::proto::exprns_ namespace.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9580> 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:50:15 UTC