如何将以下功能转换为typedef?
auto fn = [&] (int x) { doSomething(x, 3); }
答案 0 :(得分:7)
您可以使用decltype
获取完全类型:
auto fn = [&] (int x) { doSomething(x, 3); };
using lambda_type = decltype(fn);
但是如果你只想知道 compatible ,更通用的类型,比如将lambda作为参数传递给另一个函数,你可以使用std::function<void(int)>
(如Joachim所提到的那样)。 / p>
答案 1 :(得分:3)
怎么样
using my_function_type = std::function<void(int)>;
答案 2 :(得分:1)
typedef std::function<void(int)> my_function_type;
适用于VS2012