将braced-init-list赋值给数组是否正确?

时间:2010-06-07 15:24:31

标签: c++ c++11 g++ language-lawyer standards-compliance

标准规定,在5.17 / 9

之下
  

braced-init-list可能出现在
的右侧        - 对标量的赋值[...]
       - 由用户定义的赋值运算符[..]

定义的赋值

在GCC 4.5.1-pre9999中,我可以编译它(使用-std = c ++ 0x,NOT -std = gnu ++ 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在这里是否正确?

1 个答案:

答案 0 :(得分:4)

对我来说这看起来像个错误。初始化(int test = {1,2,3};)很好,但据我所知,标准中没有任何内容允许分配。