警告:扩展初始化列表仅适用于 -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 [默认启用]的主要内容,如果未能解决你的问题,请参考以下文章