lambda比较确定性吗?

时间:2012-12-20 11:08:54

标签: c++ c++11 lambda

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

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

同样适用于lambdas:

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

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

1 个答案:

答案 0 :(得分:24)

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