以下代码
struct X
{
static constexpr auto lambda=[](int* t)->int&{ return *t; };
};
int main()
{
int x=0;
int* p=&x;
return X::lambda(p);
}
产生此错误:
y.cc:3:24: error: ‘constexpr const X::<lambda(int*)> X::lambda’, declared using local type ‘const X::<lambda(int*)>’, is used but never defined [-fpermissive]
static constexpr auto lambda=[](int* t)->int&{ return *t; };
我不确定是否可以在课堂上初始化lambda。在任何情况下,我都不明白这个特定的错误消息,因为明确定义了lambda
。