【问题标题】:Is assignment of braced-init-list to an array correct? [closed]将括号初始化列表分配给数组是否正确? [关闭]
【发布时间】:2011-02-28 18:21:24
【问题描述】:

标准说,在 5.17/9 下

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

定义的赋值

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

【问题讨论】:

  • 投票关闭,因为这太本地化了,这是现在过时的编译器版本中的一个错误。

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


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2013-09-21
  • 2016-04-14
  • 2020-05-09
  • 1970-01-01
  • 2011-05-06
相关资源
最近更新 更多