我想在非静态成员函数中使用 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'不是必需的,为什么?