2012-10-20 2 views
8

2つのstd::functionがある場合、どちらが同じ機能を保持しているかどうかを確認するにはどうすればよいですか?2つのstd :: functionが等しいかどうか確認してください

その他の情報:私は関数std::vector<std::function<void()>>のベクトルを持っており、ベクトルに別の関数を追加する前に、すでに含まれているかどうかをチェックしたいと思います。

+0

ラムダは全く同じですが、==演算子を持たないので、それらを比較することはできません。あなたは一意の_ptrを使用する方が良いです –

+0

unique_ptrを使ってどのように関数を処理することができますか? – danijar

+0

これは、次の複製のようです:https://stackoverflow.com/questions/3629835/why-is-stdfunction-not-equality-comparable –

答えて

4

私はそれらを比較することはできないと思います。ここでは、彼らが格納されたオブジェクトが同等である必要はなく、すべての関数オブジェクトともラムダがoperator==そうstdまたはboostの機能は何している持っていないので、example

-1

一般std::functionboost::functionは比較できないのstd ::機能の比較上のいくつかのポイントを説明することです彼らを比較する方法

関連する問題