我想提供一个接受用户定义的Boost Phoenix lambda的API。与C ++ 11 lambda不同,Phoenix lambda是多态的。
我可以使用lambda参数的[]
运算符。以下代码段将输出数组arr
的第一个元素:
int arr[4] = {1,2,3,4};
cout << _1[_2](arr,0) << endl;
如何允许用户访问lambda参数的成员数据或方法?例如,以下代码片段无法编译;给出:错误:'const type'没有名为'x'的成员
struct vec2 { float x,y; };
vec2 v2{1,2};
cout << ((_1).x)(v2) << endl;