C++ 在C+;中使用列表时编译时出错+;

C++ 在C+;中使用列表时编译时出错+;,c++,list,C++,List,当我使用列表的显式声明{“C++”,“C”,“PHP”}时,我遇到了这个奇怪的错误: [main.cpp 2021-03-20 22:02:08.850] ,,main.cpp: In function `int main()': main.cpp:22: error: syntax error before `{' token 代码如下: #include <iostream> #include <list> using std::list; using std::

当我使用列表的显式声明
{“C++”,“C”,“PHP”}
时,我遇到了这个奇怪的错误:

[main.cpp 2021-03-20 22:02:08.850]
,,main.cpp: In function `int main()':
main.cpp:22: error: syntax error before `{' token
代码如下:

#include <iostream>
#include <list>

using std::list;
using std::string;

class Person {
    public:
        string name;
        list <string> languages;
};

int main() {

    Person p1;
    p1.name = "Joe";
    p1.languages = { "C++", "C", "PHP" };

    return 0;
}

#包括
#包括
使用std::list;
使用std::string;
班主任{
公众:
字符串名;
列出语言;
};
int main(){
人p1;
p1.name=“乔”;
p1.languages={“C++”,“C”,“PHP”};
返回0;
}

很好。检查文件和文件夹的名称,因为代码没有22行

代码很好


PS:作为一个补充,如果你要问错误,至少要提供最少的可重复的例子。

你的编译器使用什么选项?默认值可能仍然是C++标准的一个相当旧的版本?这不是我已经问过的问题的答案,也是不完整的(它没有提到编译器的版本是什么)。您可能想尝试使用
-std=c++11
(或者
-std=c++0x
,如果不起作用的话)。我对mingw了解不多。我所知道的只是它用作编译器。我相信它包含了某种形式的IDE,但我对此一无所知。你需要看看是否能在C++中使用C++ 11(或更高版本)(这是什么是<代码> -STD= C++ 11 ;你的代码使用C++特性,<代码> STD::IngalIZErristList,这在以前版本中是不可用的)。你确定这是你要编译的代码吗?里面没有22行…然后用编译所示代码时得到的错误编辑您的问题。没有人愿意花时间在一个拼写错误或没有显示的问题上。谢谢,我现在理解了这个问题,我已经修复了它。我更改了编译器,它工作得很好
$ g++ -g -o name name.cpp 
$ g++ --version
g++ (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.