我有一个带枚举器的课程:
class MyClass
{
public:
enum enTest
{
TestA,
TestB,
TestC
};
void foo();
}
并在我的foo函数中:
void MyClass::foo()
{
MyClass::enTest var = MyClass::TestA;
auto lambda = [&] () -> void
{
if (var == MyClass::TestA)
int x = 3;
};
}
它给了我错误: 错误C2227:' - > TestA'的左侧必须指向类/ struct / union / generic类型
在'if'行中,但如果我将lambda的捕获更改为[& var]则可行。
为什么?
我认为[&]通过引用捕获任何引用的变量。
对不起,如果这是一个愚蠢的问题。