如果我有两个std::function
s,如何检查两者是否具有相同的功能?检查两个std ::函数是否相等
附加信息:我有一个向量函数std::vector<std::function<void()>>
,并向矢量添加另一个函数之前,我想检查它是否已包含。
如果我有两个std::function
s,如何检查两者是否具有相同的功能?检查两个std ::函数是否相等
附加信息:我有一个向量函数std::vector<std::function<void()>>
,并向矢量添加另一个函数之前,我想检查它是否已包含。
我不认为他们都可以比较。这里是一个example解释上的std ::功能比较几点
一般std::function
和boost::function
没有可比性,因为他们需要存储的对象具有可比性,但不是所有的函数对象,也有lambda表达式所以operator==
或std
功能boost
没有方法来比较它们
Lambdas可以完全等效,但由于它们没有==运算符,因此无法对它们进行比较。你最好使用unique_ptr –
使用unique_ptr该句柄的功能如何? – danijar
这似乎是重复的:https://stackoverflow.com/questions/3629835/why-is-stdfunction-not-equality-comparable –