如何将以下函数转换为 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)>
(正如 Joachim 提到的那样)。
怎么样
using my_function_type = std::function<void(int)>;
typedef std::function<void(int)> my_function_type;
在 VS2012 中工作