5

operator[] が引数を 1 つしかとらないことに関連する質問はたくさんありますが、実際にその理由を述べているものは見つかりません。

たとえば、関数をmatrix[0, 3]呼び出すことは、言語の非常に自然な拡張のようです。ElementT& operator[](SizeT x, SizeT y)

この構文が言語に含まれていない特定の理由 (非互換性など) があるのでしょうか、それとも動機の欠如以外に、実際に追加を妨げているものはありますか?

(注: これは重複としてマークされていますが、そうではありません。この質問は、「この構文が言語にないのはなぜですか?」であり、「問題を回避するにはどうすればよいですか?」ではありません。前述のように、多くの質問があります。それらは後者に対応していますが、前者に対応しているものはありません。)

4

1 に答える 1

4

(この特定のコンテキストではほとんど使用されていない)カンマ演算子は、これを標準化するために長い移行期間を必要とする作業のレンチであるだけでなく、人々が使用する別のソリューションをすでに持っています。

ElementT& operator()(SizeT x, SizeT y)

一部の行列ライブラリは、この形式を使用しています。少し見にくいですが、C++ へようこそ。:)

于 2014-10-11T14:38:23.613 に答える