如何比较两个 C++11std::function
s with operator==
,并返回true
如果两者都说function
s 引用同一个函数指针吗?
你实际上可以让它工作.target
:
template<typename T, typename... U>
size_t getAddress(std::function<T(U...)> f) {
typedef T(fnType)(U...);
fnType ** fnPointer = f.template target<fnType*>();
return (size_t) *fnPointer;
}
if (getAddress(f) == getAddress(g)) {...}
(Ref: C++ 尝试从 std::function 获取函数地址 https://stackoverflow.com/questions/18039723/c-trying-to-get-function-address-from-a-stdfunction)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)