Hi *,

 

I was desparately trying to compile something like this (VS2008), always getting the error that it cannot convert from  int* to int*&.

 

:boost::shared_ptr<int> c;

::boost::lambda::var(c)

=::boost::lambda::constructor

<::boost::shared_ptr<int>>()

(::boost::lambda::new_ptr<int>()()

)

 

[This is “short form” for the conventional code

::boost::shared_ptr<int>c=::boost::shared_ptr<int>(new int());] (1)

 

The reason is that all lambda functors take arguments by reference. In this case, make_const in front of shared_ptr did not solve the problem, it causes immediate evaluation of the new_ptr functor…

 

Is there any way to rewrite this (1) short line of code in boost-lambda?

 

/Gerhard Pobinger