【问题标题】:warning: extended initializer lists only available with std c++ 11 [closed]警告:扩展初始值设定项列表仅适用于 std c++ 11 [关闭]
【发布时间】:2014-08-13 08:07:18
【问题描述】:

使用以下代码时收到警告:

警告:扩展初始化列表仅适用于 std c++ 11

struct test{
 int a;
 int b;
};

//Previously const test atest[] = { {2,3} {4,5} };
const test atest[] = { {2,3} , {4,5} };

我怎样才能删除它?我试过solution,但没用。

【问题讨论】:

  • 你是不是故意把它标记为c?
  • 我现在改成C++了..
  • 你用的是什么编译器?什么版本?您正在使用哪些选项?我无法为您的代码重现此内容,您确定这是您正在编译的内容吗?如果您尝试使用 C++11,则需要使用 -std=c++11-std=gnu++11
  • 使用const test atest[] = {2,3,4,5};时编译器会生成什么?
  • 我正在使用 MGC 1.8 编译器。 Mentor 图形编译器。

标签: c++ compiler-warnings


【解决方案1】:
const test atest[] = { {2,3}, {4,5} };

您忘记了逗号,并且在 C 中,如果 test 未定义类型,则需要 struct 关键字:

const struct test atest[] = { {2,3}, {4,5} };

【讨论】:

  • 我尝试了您建议的解决方案,但它给了我相同的编译器警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 2016-01-19
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多