後置演算子はint
パラメータをとります。すでにquestion as to whyがあり、答えが次のようになっているようです: "Because Bjarne Stroustrup said so"Postfix演算子を考慮しないでください。バイナリ演算子
私はその答えに不快です。 Bjarne Stroustrupがコンパイラの動作を異なるようにする必要がある場合、なぜオペレータがリファレンスを返したかどうかを確認することができませんでしたか?
- は、なぜ私が行うことはできません:それは疑問を私に残し、これがすべてで単項演算子を考えられているのはなぜ
int
パラメータは1 - にデフォルト設定されていないのはなぜ
foo++ 13;
- は、それは引数を取る
短いバージョン:それはハックです。 –
あなたはコインの両面をプレイしています:1) "その戻り値の型に基づいて関数をオーバーロードすることができないので、メソッドは伝統的な規則に従わなければならないと言っています2)"( 'int')オーバーロードの解決のためにそこに置いておきます。方法は従来のルールに従う必要はないと言っています。とにかくそれが規則を破るようになったら、それは理にかなっているはずです。 –
@ JonathanMee 'operator ++'が接頭辞演算子または接尾辞演算子でなければならないということは、コンパイラに伝える方法がありません。彼らは、過負荷解決を使用してそれをハックすることに決めました。戻り値の処理のための特別なルールを作るのではなく、パラメータがコンパイラのマーカーになると判断します。 C++の仕組みと同じくらい自然なことです。実際には、他の場所でも破棄されたパラメータを使用して、コンパイラのオーバーロードを明確にします。 – NathanOliver