C ++ 03 $ 13.6 / 1- "[...]組み込みの候補演算子関数と同じ名前とパラメータータイプのユーザー作成の候補がある場合、組み込みの演算子関数は非表示になり、含まれません。候補関数のセットで。」
規格からのこの引用の意図についてはよくわかりません。組み込み演算子と同じ名前と型を持つユーザー定義の候補関数を定義することは可能ですか?
例えば、明らかに間違っている以下。
int operator+(int)
では、この引用はどういう意味ですか?
C ++ 03 $ 13.6 / 1- "[...]組み込みの候補演算子関数と同じ名前とパラメータータイプのユーザー作成の候補がある場合、組み込みの演算子関数は非表示になり、含まれません。候補関数のセットで。」
規格からのこの引用の意図についてはよくわかりません。組み込み演算子と同じ名前と型を持つユーザー定義の候補関数を定義することは可能ですか?
例えば、明らかに間違っている以下。
int operator+(int)
では、この引用はどういう意味ですか?
13.6でそれらの1つを選択するだけです。好き
すべてのポインターまたは列挙型Tには、次の形式の候補演算子関数が存在します。
bool operator<(T, T); bool operator>(T, T); bool operator<=(T, T); bool operator>=(T, T); bool operator==(T, T); bool operator!=(T, T);
それで
enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }