<分区>
我正在对 lambda 函数进行快速实验,但我无法弄清楚如何在下面声明 testFunc
变量。
一般来说,一个函数指针可以定义如下:
int (*someFunc)(int, int) = otherFunction;
在没有任何闭包的情况下对 lambda 函数执行此操作时,它工作正常:
int (*someFunc)(int) = [](int a) -> int { return 0; };
但是,我在尝试通过引用捕获时遇到编译器错误:
void (*testFunc)() = [&]() -> void { /* code here */ };
如果我将 testfunc
声明为 auto
就可以了,但我很好奇上面的代码有什么问题?