私はユーザー定義型とカスタム比較関数のセットを使用しています。 ==
演算子をセット間で使用しようとすると、コンパイル時エラーが発生します。私は何が欠けていますか? カスタム比較関数で等値を設定する
#include <cassert>
#include <set>
// my user-defined type
struct IntWrapper {
int value;
};
// my compare function
struct LessComparer {
bool operator()(const IntWrapper& lhs, const IntWrapper& rhs) const {
return lhs.value < rhs.value;
}
};
int main() {
std::set<IntWrapper, LessComparer> s;
assert(s == s); // I would expect this to work
}
あなたの '演算子=='(と '演算子!=')はどこですか? – Toris
カスタムコンパレータは、比較セットではなく、セット内の要素を比較するためのものです – Loreto
面白いですが[this](http://ideone.com/tn1huh)は動作します。なぜ、コンパイラは 's'が関数だと思うかもしれないのか分かりません。 – ilotXXI