我希望在非静态成员函数中使用c++11 lambda,并调用同一个类的静态成员函数:
class A {
static void a() {}
public:
void x() {
[] () { A::a(); }();
}
};但是gcc4.6和gcc4.7都得到了一个错误:错误:这个lambda函数没有捕获' this‘
为什么lambda需要'this‘,因为'a’是一个静态成员函数。
如果'x‘是静态的,或者'a’是其他类的静态成员函数,'this‘是不必要的,为什么?
https://stackoverflow.com/questions/11077140
复制相似问题