如何在Boost Proto / Phoenix中使用非多态lambda?

时间:2013-02-23 21:42:45

标签: c++ boost c++11 boost-phoenix boost-proto

我想提供一个接受用户定义的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;

0 个答案:

没有答案