众所周知,比较两个匹配的字符串字面量可以得到相等结果:
"hello" == "hello" //could be true or false
同样适用于lambda函数吗:
[](){} == [](){} //false - guaranteed?
编译器是否有自由评估此项,还是保证它将评估为false
?这合法吗?上面的代码到底在比较什么?
无法比较lambda的相等性。在那个小片段中,您看到的是将lambda转换为函数指针,然后比较函数指针。不能保证这些函数指针相同或不同,这意味着结果可以是true
也可以是false
。
true
和false
都是有效的结果,但让你怀孕不是) - R. Martinho Fernandes
operator==
吗?我在快速检查中找不到相关参考... - Kerrek SB