C++11 通过引用定义函数类型捕获

标签 c++ c++11

如何将以下函数转换为 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/

相关文章:

c++ - 关于增量和赋值的解释

c++ - 将一组字符串与一个字符串进行比较的最快方法是什么?

c++ - 什么是 `STL` 算法兼容容器?

c++ - 为什么我的代码无法处理大数组输入(>10000)?

c++ - 嵌入 OpenCV Viz3d 和 Qt

c++ - 使用就地新运算符堆栈展开破坏内存

c++ - 仅当类型具有 "<<"运算符时才重载?

c++ - lambda 函数中的 std::unique_ptr 导致段错误

c++ - 为什么 std::bind 不考虑功能元数?

c++ - DirectX 设备大写字母