Boost logo

Proto :

Subject: [proto] Can't use template domain class with BOOST_PROTO_BASIC_EXTENDS
From: joel falcou (joel.falcou_at_[hidden])
Date: 2010-10-09 15:02:16


Trying to use template domain class with BOOST_PROTO_BASIC_EXTENDS
ends up in an error leading to the fact this ligne in the macro is incorrect
when the Domain is template:

     BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
     typedef void proto_is_aggregate_;
     typedef Domain::proto_generator proto_generator;

Obviously this is alckign a typename before Domain::proto_generator if
Domain is actually a template class.

Thing is used to work before ( aorund 1.40) so I guess somethign changed
around here.
I guess a details meta-function extracting the domain will fix that or
am I wrong ?

namespace boost { namespace proto
{
   template<class Domain> generator_of
   {
       typedef typename Domain::proto_generator type;
   };
} }

     BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
     typedef void proto_is_aggregate_;
     typedef typename generator_of<Domain>::type proto_generator;

Or is it ?


Proto list run by eric at boostpro.com