>Yep, you have created an ambiguity. Sometimes you want func( a )( b ) to
>create an expression template, and sometimes you want it to evaluate the
>function object created by func( a ). If it's not obvious to the
>compiler, it might not be obvious to your users either. I would rethink
>your syntax.


>If you're really enamored with this syntax, you need to distinguish the
>calls somehow. You should have to SFINAE operator() on whether the
>argument is a proto expression or not (with enable_if<is_expr<Arg0> >).
>That means BOOST_PROTO_EXTENDS_FUNCTION isn't going to work for you and
>you need to define them by hand.

This is of course not the complete syntax but yes, you're right, it
might still be confusing, I'll need to try the [] syntax out and see
if the () syntax is worth the trouble.

Thanks,

Christophe
_______________________________________________
proto mailing list
proto@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/proto

Reply via email to