2つのstd::function
がある場合、どちらが同じ機能を保持しているかどうかを確認するにはどうすればよいですか?2つのstd :: functionが等しいかどうか確認してください
その他の情報:私は関数std::vector<std::function<void()>>
のベクトルを持っており、ベクトルに別の関数を追加する前に、すでに含まれているかどうかをチェックしたいと思います。
2つのstd::function
がある場合、どちらが同じ機能を保持しているかどうかを確認するにはどうすればよいですか?2つのstd :: functionが等しいかどうか確認してください
その他の情報:私は関数std::vector<std::function<void()>>
のベクトルを持っており、ベクトルに別の関数を追加する前に、すでに含まれているかどうかをチェックしたいと思います。
私はそれらを比較することはできないと思います。ここでは、彼らが格納されたオブジェクトが同等である必要はなく、すべての関数オブジェクトともラムダがoperator==
そうstd
またはboost
の機能は何している持っていないので、exampleが
一般std::function
とboost::function
は比較できないのstd ::機能の比較上のいくつかのポイントを説明することです彼らを比較する方法
ラムダは全く同じですが、==演算子を持たないので、それらを比較することはできません。あなたは一意の_ptrを使用する方が良いです –
unique_ptrを使ってどのように関数を処理することができますか? – danijar
これは、次の複製のようです:https://stackoverflow.com/questions/3629835/why-is-stdfunction-not-equality-comparable –