Boost logo

Boost Users :

Subject: Re: [Boost-users] Defining Statements with Proto
From: Eric Niebler (eric_at_[hidden])
Date: 2010-01-02 16:49:29


On 1/3/2010 6:40 AM, David A. Greene wrote:
> On Saturday 02 January 2010 11:23:19 David A. Greene wrote:
>> On Saturday 02 January 2010 05:30:33 Eric Niebler wrote:
>>> There is experimental and undocumented support in Proto for
>>> members like else_. See libs/proto/example/virtual_member.cpp
>>> for a working example.
>>
>> Ah, this is what I was looking for. What is the "experimental" and
>> "undocumented" part?

BOOST_PROTO_EXTENDS_MEMBERS

> So following this example, I came up with the attached testcase,
> modified from the one I posted to the development list.
>
> I know the grammar is not strict enough (it should have a separation
> between "expressions" and "statements") but that's not important.
>
> With the modified testcase display_expr breaks with an
> incomprehensible compiler error. I assume I'm missing an operator<<
> definition somewhere but I don't know where it belongs.

That means the tag types you've defined in the keyword namespace are not
Streamable. Define a stream insertion operator on keyword::if_. Using
display_expr is documented here:

http://www.boost.org/doc/libs/1_41_0/doc/html/proto/users_guide.html#boost_proto.users_guide.intermediate_form.debugging_expressions

> And I'm still getting the same compiler error on the #if 0'd code.

Still on my radar ...

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

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