On 2/28/2011 11:40 PM, Nate Knight wrote:
> On Feb 26, 2011, at 4:55 AM, Eric Niebler wrote:
>> I think I know what's causing this. Can you try compiling with
> Eric,
> Thanks for the information.  Compiling with BOOST_PROTO_STRICT_RESULT_OF
> allows the first commented line to compile.  I guess we'll wait to hear from 
> Joel about 
> the impact of this change on the run times of his library.  
> The second commented line does not compile.  This seems to be because there 
> are no
> 'const Expr&' overloads of boost::proto::transform::operator().  Is this 
> correct? The pertinent 
> part of the compiler error (from clang) is 


That's correct. This code compiles on trunk. I made a late fix that
didn't make it into 1.46. If we ship a point release, I'll merge it over.

But even with this fix, it can crop up in other circumstances. This is a
Proto gotcha. It's missing a bunch of overloads in the interest of
compile times (transform_impl is instantiated /everywhere/), but I need
to reconsider this because you're not the first to get bitten by this.

If you file a bug, I'll get around to it eventually. Some day, I'll use
rvalue refs and this problem will just go away.

Eric Niebler
BoostPro Computing
proto mailing list

Reply via email to