Boost logo

Boost :

Subject: Re: [boost] [proto] Error with Proto Domains in 1.45
From: Fernando Pelliccioni (fpelliccioni_at_[hidden])
Date: 2011-07-30 19:26:36


Hi Eric,

On Fri, Jul 29, 2011 at 7:04 PM, Eric Niebler <eric_at_[hidden]> wrote:

>
> On 7/29/2011 12:52 PM, Fernando Pelliccioni wrote:
> > Hi Eric, hi all,
> >
> > I'm getting the following errors when I try to compile the example in the
> > atteched file.
> >
> > test_proto_145.cpp: In function ‘int main()’:
> > test_proto_145.cpp:91: error: no match for ‘operator<<’ in ‘emergency <<
> 1’
> >
> > I am using Boost 1.45 and GCC 4.4.5
> > This works fine in 1.46.0 and above.
> >
> > Is there a patch ?
>
> If upgrading Boost isn't an option, you have have a couple of other
> work-arounds. First, you can replace the proto/operators.hpp with the
> attached.

The attached file is the same as Boost 1.45.
Could I replace proto/operators.hpp with the file of the version 1.46.0,
1.46.1 or 1.47 ?

> Or, you can change your LevelGrammar to accept other terminal
> types, like:
>
> struct LevelGrammar
> : boost::proto::or_<
> LevelTerminals
> , boost::proto::terminal<boost::proto::_>
> , boost::proto::shift_left<
> LevelGrammar
> , boost::proto::not_< LevelTerminals >
> >
> >
> {};
>

This works great!

Thank you so much.
Fernando.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk