
Hi everybody, in some case I want to have an template parameter of functor like this: //////////////////// template<typename Functor> double add(double l, double r) { return Functor::invoke(l, r); } int main() { // simply invoke: BOOST_ASSERT( BOOST_STATIC_LAMBDA_FUNCTOR(_1 + _2 * _3)::invoke(1, 3, 5) == 1 + 3 * 5 ); // as a template parameter. BOOST_ASSERT( add<BOOST_STATIC_LAMBDA_FUNCTOR(_1 + _2)>(0.1, 0.2) == 0.1 + 0.2 ); // define as a type typedef BOOST_STATIC_LAMBDA_FUNCTOR(_1 << _2 << _3) left_shift_type; // print hello world, first parameter(cout) is reference. left_shift_type::invoke<ostream&>(cout, "hello world", &endl<char, char_traits<char> >); } ///////////////////////////////////// The BOOST_STATIC_LAMBDA_FUNCTOR used an internal BOOST_TYPEOF, could parse a lambda expression to a static type, which has a template function "invoke" with any type parameter. I think that would be useful and I have done some work on it. Is there anyone interested in it?