如我们所知,比较两个匹配的字符串文字可以导致相等:
"hello" == "hello" //could be true or false
同样适用于lambdas:
[](){} == [](){} //false - guaranteed?
编译器可以随意评估它,还是保证它会评估为false
?这合法吗?以上实际比较了什么?
答案 0 :(得分:24)
你无法比较lambda的相等性。你在那个小片段中看到的是将lambda转换为函数指针然后比较函数指针。无法保证这些函数指针是否相同,这意味着结果可以是true
或false
。