>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