警告:扩展初始化列表仅适用于 -std=c++11 或 -std=gnu++11 [默认启用]

Posted

技术标签:

【中文标题】警告:扩展初始化列表仅适用于 -std=c++11 或 -std=gnu++11 [默认启用]【英文标题】:warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default] 【发布时间】:2020-11-01 03:47:02 【问题描述】:

我不知道为什么会出现以下错误

" "

我有 .h 和 .cpp 文件

在.h文件中,我声明了变量名

 class file
 
   private:
     string* arr;
   public:
     void list();
 

在 .cpp 文件中

void file::list()

  arr = new string[2]"1", "2"; 

【问题讨论】:

你能显示你的makefile吗?还有编译器版本详细信息。 @Harry,这就是我的文件的样子。 你是如何编译程序的?你能显示那个命令吗? 请将运行g++ --version的结果添加到问题中。 添加-std=c++11-std=c++14-std=c++17,具体取决于您想使用和可以使用的标准的最新程度。 【参考方案1】:

我不知道为什么会出现以下错误

warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]

您收到警告是因为您在 C++11 之前不允许使用的上下文中使用了初始化列表,并且您没有使用 C++11 或更高版本。因此,程序格式错误,编译器需要向您显示一条消息。

【讨论】:

eerorika,如果我像这样使用 arr[0] = "1" 那么它是有效的。有没有办法在旧版本中解决这个问题? @Newbie 重写它以使用有效的代码。或者使用更新的语言版本。

以上是关于警告:扩展初始化列表仅适用于 -std=c++11 或 -std=gnu++11 [默认启用]的主要内容,如果未能解决你的问题,请参考以下文章

[C++11] --- 易用性改进

[C++11] --- 易用性改进

[C++11] --- 易用性改进

适用于 Mac 的 Air Native Extension - “没有命名的方法”

如何指定仅适用于特定国家/地区的地图? [复制]

jQuery Autocomplete 仅适用于大写