-3
これは動作するのか、両方のオペランドをユーザー定義型のオブジェクトにする必要がありますか?オーバーロードされたバイナリ演算子の右オペランドを基本型のオブジェクトにすることはできますか?
これは動作するのか、両方のオペランドをユーザー定義型のオブジェクトにする必要がありますか?オーバーロードされたバイナリ演算子の右オペランドを基本型のオブジェクトにすることはできますか?
オーバーロードされたバイナリ演算子のオペランドの少なくとも1つがユーザ定義である必要があります。しかし、彼らは両方である必要はありません。例えば
、法的しかし、無用な定義のペア:
enum class foo { bar };
void operator+(int, foo) {}
void operator*(foo, int) {}
上記は(何もしない)1 + foo::bar
とfoo::bar*2
有効な式になります。
試しましたか?何が起こった? – DimChtz