9

標準では、5.17/9 の下で


- スカラーへの代入 [...] -
ユーザー定義の代入演算子によって定義された代入 [..]

GCC 4.5.1-pre9999 では、これをコンパイルできます (-std=gnu++0x ではなく、-std=c++0x を使用)

#include <iostream>

int main()
{
        int test[] = {1,2,3};
        std::cout << test[0] << test[1] << test[2];
        test = {4,5,6};
        std::cout << test[0] << test[1] << test[2] << std::endl;
}

そしてそれは印刷し123456ます。ここでGCCは正しいですか?

4

1 に答える 1

4

私にはバグのように見えます。初期化(int test = {1,2,3};)は問題ありませんが、私が見る限り、標準では割り当てを許可しているものはありません。

于 2010-06-07T15:44:24.130 に答える