16

众所周知,比较两个匹配的字符串文字可以导致相等:

"hello" == "hello" //could be true or false

同样适用于 lambda:

[](){} == [](){} //false - guaranteed?

编译器是否可以随意评估它,还是保证它会评估为false?合法吗?上面的实际比较是什么?

4

1 回答 1

24

您无法比较 lambda 的相等性。您在那个小片段中看到的是 lambdas 被转换为函数指针,然后比较函数指针。无法保证这些函数指针相同或不同,这意味着结果可以是truefalse

于 2012-12-20T11:12:42.667 回答