Boost logo

Boost Users :

Subject: [Boost-users] [Proto] Bug in 1.40 : uncomplete type in matches
From: joel (joel.falcou_at_[hidden])
Date: 2009-10-25 13:59:09


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

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net