Dear all,I can't understand why this test case is not compiling:#include <boost/function.hpp> #include <boost/phoenix/core/argument.hpp> #include <boost/phoenix/operator.hpp> #include <iostream> using namespace boost::phoenix::placeholders; expression::argument<1>::type X;
int main ( int argc, char *argv[] ) { boost::function<int(int)> f; f = if_else( X == 0, X, X*2 ); std::cout << f(0) << f(12) << std::endl; return 0; } // ---------- end of function main ----------The error message says 'expression' does not name a type. I've tried to explicitly play with boost::phoenix namespaces, but doesn't work.