[Proto] Bug in 1.40 : uncomplete type in matches

I just switched from 39 to 40 and my proto code that was working doesn't anymore. I define a grammar that matches any terminal, any nary functions except for address_of and comma like this : struct grammar : bp::or_< bp::terminal< blockbp::_,bp::_ > , meta::lambda_term< boost::is_arithmetic > , bp::and_< bp::nary_expr< bp::_, bp::vararg< grammar > > , bp::not_< meta::low_levelbp::_ > , bp::not_< meta::streambp::_,bp::_ >
{};
where lambda_term is :
template< template<class> class Lambda >
struct lambda_term
: boost::proto::and_< boost::proto::terminalboost::proto::_
, boost::proto::if_
{};
When i compile any code that instanciate my grammar, i got : /usr/local/include/boost-1_40/boost/proto/matches.hpp:304: error: invalid use of incomplete type ‘struct boost::proto::op::address_ofboost::proto::wildcardns_::_’ While I got no error in 1.39 Do I miss some include of core proto file that wasn't needed before ? -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35

joel wrote:
I just switched from 39 to 40 and my proto code that was working doesn't anymore. I define a grammar that matches any terminal, any nary functions except for address_of and comma like this :
struct grammar : bp::or_< bp::terminal< blockbp::_,bp::_ > , meta::lambda_term< boost::is_arithmetic > , bp::and_< bp::nary_expr< bp::_, bp::vararg< grammar > > , bp::not_< meta::low_levelbp::_ > , bp::not_< meta::streambp::_,bp::_ >
{};
Oh and of course the missing ones :
template<class Grammar>
struct low_level
: boost::proto::or_< boost::proto::address_of<Grammar>
, boost::proto::dereference<Grammar>
, boost::proto::comma
participants (1)
-
joel