假設我正在寫一個int
包裝,並且需要提供每一個操作符的過載。作者必須列出每一個作者,還是可以根據作者提供的內容自動生成作品?編譯器能否推斷現有的新自動定義的運算符?任何C++運算符重載是否基於其他提供?
如果我定義了operator==
,它會自動給我一個operator!=
嗎?或相反亦然?
如果我定義了operator++()
,我可以免費獲得operator++(int)
嗎?或相反亦然?
+=
型業務如何?它是否可以結合operator+
的現有定義與operator=
生成operator+=
?理論上它應該是可能的,但是呢?
爲>=
到<
等同樣的問題呢,還是要充分列出定義爲>
,>
,>=
,<=
?
有[比較運營商違約]的建議(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4126.htm)。 – user657267
測試這很容易。 – juanchopanza
boost有一些基於其他的操作符:http://www.boost.org/doc/libs/1_59_0/libs/utility/operators.htm – stefaanv