[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< block<bp::_,bp::_> > , meta::lambda_term< boost::is_arithmetic > , bp::and_< bp::nary_expr< bp::_, bp::vararg< grammar > > , bp::not_< meta::low_level<bp::_> > , bp::not_< meta::stream<bp::_,bp::_> >
{};
where lambda_term is : template< template<class> class Lambda > struct lambda_term : boost::proto::and_< boost::proto::terminal<boost::proto::_> , boost::proto::if_<Lambda<boost::proto::_value>()>
{};
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_of<boost::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< block<bp::_,bp::_> > , meta::lambda_term< boost::is_arithmetic > , bp::and_< bp::nary_expr< bp::_, bp::vararg< grammar > > , bp::not_< meta::low_level<bp::_> > , bp::not_< meta::stream<bp::_,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<Grammar,Grammar> > {}; template<class Left, class Right> struct stream : boost::proto::or_< boost::proto::shift_left<Left,Right> , boost::proto::shift_right<Left,Right> > {}; Sorry for the noise -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35
participants (1)
-
joel