检查两个 std::function 是不是相等
Posted
技术标签:
【中文标题】检查两个 std::function 是不是相等【英文标题】:Check if two std::function are Equal检查两个 std::function 是否相等 【发布时间】:2012-10-10 23:34:57 【问题描述】:如果我有两个std::function
s,如何检查两者是否具有相同的功能?
附加信息:我有一个函数向量 std::vector<std::function<void()>>
,在向向量添加另一个函数之前,我想检查它是否已经包含在内。
【问题讨论】:
Lambda 可以完全等价,但由于它们没有 == 运算符,因此您无法比较它们。你最好使用 unique_ptr 使用 unique_ptr 如何处理函数? 这似乎与以下内容重复:***.com/questions/3629835/… 【参考方案1】:我不认为他们可以比较。这是一个example 来解释关于 std::function 比较的一些要点
【讨论】:
【参考方案2】:一般std::function
和boost::function
是不可比较的,因为它们需要它们存储的对象是可比较的,但不是所有的函数对象和lambda 都有operator==
所以std
或boost
函数无法比较它们
【讨论】:
以上是关于检查两个 std::function 是不是相等的主要内容,如果未能解决你的问题,请参考以下文章