【问题标题】:Check if two std::function are Equal检查两个 std::function 是否相等
【发布时间】:2012-10-10 23:34:57
【问题描述】:

如果我有两个std::functions,如何检查两者是否具有相同的功能?

附加信息:我有一个函数向量 std::vector<std::function<void()>>,在向向量添加另一个函数之前,我想检查它是否已经包含在内。

【问题讨论】:

  • Lambda 可以完全等价,但由于它们没有 == 运算符,因此您无法比较它们。你最好使用 unique_ptr
  • 使用 unique_ptr 如何处理函数?
  • 这似乎与以下内容重复:stackoverflow.com/questions/3629835/…

标签: c++ function operators equals std


【解决方案1】:

我不认为他们可以比较。这是一个example 来解释关于 std::function 比较的一些要点

【讨论】:

    【解决方案2】:

    一般std::functionboost::function 是不可比较的,因为它们需要它们存储的对象是可比较的,但不是所有的函数对象和lambda 都有operator== 所以stdboost 函数无法比较它们

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 2011-08-09
      • 2020-02-12
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多