こんなのできたんですね
#include <iostream> #include <boost/function.hpp> #include <boost/lambda/lambda.hpp> #include <boost/lambda/bind.hpp> #include <boost/lambda/if.hpp> using namespace std; using namespace boost; using namespace boost::lambda; int main() { function<int(int)> fact; fact = if_then_else_return(_1 == 1, 1, ret<int const>(_1 * bind(constant_ref(fact), _1 - 1))); cout << fact(3) << endl; // 6 return 0; }
読めるよめる