c++ - 我可以使用 C++03 标准库功能模拟一个空的 lambda 吗?

标签 c++ c++03

我坚持使用 GCC 4.4,因此尽管在我的代码库中引入了 -std=c++0x,但我没有使用 lambda。

是否有等效于空 lambda [](){} 的 C++03,我可以安全地将其用作具有某种类型 Callback< 的泛型参数的默认参数?

我问是因为旧的 std::plusstd::less 等很方便,但我似乎找不到空操作, void-返回等价物。

最佳答案

struct noop {
  static void do_nothing(){};
  void operator()()const{};
  typedef void(*pf)();
  operator pf()const { return do_nothing; }
};

noop() 相当等同于 [](){}

它甚至可以像 noop lambda 那样转换为函数指针。

关于c++ - 我可以使用 C++03 标准库功能模拟一个空的 lambda 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38333817/

相关文章:

c++ - Mac 中 Electron 中的 native C++ 插件出现问题

c++ - 为错误 12029 抛出 CInternetException

python - 在 macOS 上使用 OpenMP 与 Cython 进行编译

c++ - 有没有办法用 C++ 模拟 Windows 输入?

boost - 将一系列结构向量插入到结构成员类型的向量中

c++ - 如何从一个到另一个减去 std::map 元素并在 C++ 中更新它

c++ - 不支持基本模板的概念专用模板

c++ - 上下文信息不足,无法确定类型

c++ - 当operator new失败时构造函数调用

c++ - 当一个成员函数是 volatile 时,这意味着什么?