okuの日記: int[pointer] はコンパイルエラーになるべきか?
日記 by
oku
Digital Mars は C++ Forum への投稿 C Bug より:
char ch2 = 0[sz];
は Digital Mars C++ ではエラーになります。 これは結構前から知られていたと思うので、今更... という感じです。 確かに ISO-C/C++ にきちんと準拠した処理系なら pointer[int]とint[pointer]は等価なので、上記のコードはきちんとコンパイルできなければなりません。 しかし、C FAQ にある通り、array[int] が *(array + int) と等しく、故に *(int + array) と等しく、故に int[array] に読み替えられる、というのは IOCCC に出展する作品の元ネタにする程度の利用価値しかないのではないかと。
ということで、コンパイルエラーになっても構わないんじゃないかなあ、と思うんですが。
int[pointer] はコンパイルエラーになるべきか? More ログイン