Boost.Phoenix lambda のスコープ内で、スコープ外の変数を参照する
let と同じで、変数に引数を代入して使用します。
[ソース]
#include <boost/phoenix.hpp> #include <iostream> int main(){ namespace phx = boost::phoenix; using phx::arg_names::arg1; using phx::arg_names::arg2; using phx::local_names::_a; int array[] = {0, 1, 2, 3, 4}; // 第二引数を _a に代入して使用する phx::for_each(arg1, phx::lambda(_a = arg2)[ std::cout << _a << arg1 << std::endl ])(array, "value:"); return 0; }
[出力]
value:0 value:1 value:2 value:3 value:4
[boost]
- ver 1.47.0