Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
众所周知,比较两个匹配的字符串文字可以导致相等:
"hello" == "hello" //could be true or false
同样适用于 lambda:
[](){} == [](){} //false - guaranteed?
编译器是否可以随意评估它,还是保证它会评估为false?合法吗?上面的实际比较是什么?
false
您无法比较 lambda 的相等性。您在那个小片段中看到的是 lambdas 被转换为函数指针,然后比较函数指针。无法保证这些函数指针相同或不同,这意味着结果可以是true或false。
true