5

如何将以下函数转换为 typedef?

auto fn = [&] (int x) { doSomething(x, 3); }
4

3 回答 3

7

您可以使用decltype获取确切的类型:

  auto fn = [&] (int x) { doSomething(x, 3); };
  using lambda_type = decltype(fn);

但是如果你只是想知道一个兼容的、更通用的类型,比如将 lambda 作为参数传递给另一个函数,你可以使用std::function<void(int)>(正如 Joachim 提到的那样)。

于 2013-08-31T14:47:15.090 回答
3

怎么样

using my_function_type = std::function<void(int)>;
于 2013-08-31T14:47:07.230 回答
1
typedef std::function<void(int)> my_function_type;

在 VS2012 中工作

于 2013-09-02T00:02:12.060 回答