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.
ご存知のように、一致する 2 つの文字列リテラルを比較すると、結果は等しくなります。
"hello" == "hello" //could be true or false
ラムダについても同じことが言えますか:
[](){} == [](){} //false - guaranteed?
コンパイラはこれを自由に評価できますか、それとも評価されることが保証されていfalseますか? それは合法ですか?上記は実際に何を比較していますか?
false
ラムダが等しいかどうかを比較することはできません。この小さなスニペットに表示されるのは、ラムダが関数ポインターに変換され、関数ポインターが比較されることです。これらの関数ポインターが同じである、または同じではないという保証はありません。つまり、結果は または のいずれtrueかになりますfalse。
true