
Hi James, James Hirschorn wrote:
The compile-time assertion fails in the following program. I have tried with more than one version of boost including 1.53.
Is it a bug? Shall I report it?
I agree with Jeff, that this isn't really part of the public interface -- I can't find docs either. The metafunction itself appears to detect placeholder expressions*: i.e., expressions involving arg<N> or mpl::bind<>, which it obviously wouldn't in your code. The following lines work: BOOST_MPL_ASSERT_NOT((mpl::is_lambda_expression<MetafunctionClass>)); BOOST_MPL_ASSERT((mpl::is_lambda_expression<mpl::plus<mpl::_1,mpl::_2> >)); Though it would be unwise to depend on it. HTH, Nate * http://www.boost.org/doc/libs/1_53_0/libs/mpl/doc/refmanual/placeholder-expr...