如何将以下函数转换为 typedef?
auto fn = [&] (int x) { doSomething(x, 3); }
最佳答案
您可以使用 decltype
获取准确的类型:
auto fn = [&] (int x) { doSomething(x, 3); };
using lambda_type = decltype(fn);
但是如果你只是想知道一个兼容,更通用的类型,比如将 lambda 作为参数传递给另一个函数,你可以使用 std::function<void(int)>
(正如约阿希姆所提到的)。
关于C++11 通过引用定义函数类型捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549334/