接頭辞単項演算子が ""(§13.5.1[over.unary]/1)のパラメータを持たない非メンバ関数によって実装された ""である場合、任意のメンバー/非メンバー機能の選択肢に適用される通常のカプセル化/コード再利用設計の根拠以外の違いはありますか?単項マイナスオーバーロード:メンバーまたは非メンバーですか?
バイナリ演算子の場合、there's a semantic differenceは、非メンバーが左辺オペランドの暗黙的な変換を許可するためです。単項演算子のようなものはないようですが、標準では、の単項否定演算子を非メンバー(§26.4.6[complex.ops])として定義していますが、std::valarray
のものとstd::duration
のもの単項否定演算子はメンバです(§26.6.2.6[valarray.unary]、§20.11.5.3[time.duration.arithmetic])。ニュアンスはありますか?
標準の特定のセクションを引用するとき、あなたが参照しているバージョンを言及したいかもしれません。 –
@AndréCaron n3290バージョンのC++ 11から引用したので、私は 'duration'を立ち上げることができました。 – Cubbi