id summary reporter owner description type status milestone component version severity resolution keywords cc 3289 boost::phoenix::lambda doesnt handle local variables very well. kuentang@… Joel de Guzman "Introducing a local variable in boost::phoenix::lambda without using an argument names create a compiler error with boost 1.40 and msvc 2008. To be precise: The code double abc=lambda(_a=*ref(it)++)[_a*2.0]()(); // here 'it' is an //iterator create a boost::phoenix::detail::error_expecting_arguments error. The problem seems to be connected to the no_nullary. the following code reproduce the error: # include # include # include using namespace boost::phoenix; using namespace boost::phoenix::arg_names; using namespace boost::phoenix::local_names; int main() { std::vector u(11,1.0); std::vector w(11,2.0); std::vector::const_iterator it=w.begin(); //boost::phoenix::generate(ref(u) // ,lambda(_a=*ref(it)++)[_a*2.0 ] //)(); double abc=lambda(_a=*ref(it)++)[_a*2.0]()(); return 0; } " Bugs closed Boost 1.40.0 spirit Boost Development Trunk Problem fixed spirit phoenix lambda