【问题标题】:Error while compiling when using list in C++在 C++ 中使用列表时编译时出错
【发布时间】:2021-06-17 23:15:20
【问题描述】:

当我使用列表的显式声明 { "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;
}

【问题讨论】:

  • 您的编译器使用了哪些选项?默认可能仍然是 C++ 标准的相当旧的版本?
  • 这不是我所问问题的完全答案,也不完整(它没有提到正在使用哪个版本的编译器)。您可能想尝试使用-std=c++11(或-std=c++0x,如果这不起作用)。
  • 我对mingw了解不多。我所知道的是它使用gcc 作为编译器。我相信它是用某种形式的 IDE 打包的,但我对此一无所知。您需要查看是否可以在某处启用使用 C++11(或更高版本)(这是 -std=c++11 所做的;您的代码使用 C++ 功能 std::initializer_list,这在以前的版本中不可用) .
  • 您确定这是您要编译的代码吗?里面没有22行...
  • 然后编辑您的问题,并在您准确编译显示的代码时遇到错误。没有人愿意花时间在一个拼写错误或没有显示的问题上。

标签: c++ list


【解决方案1】:

编译正常。检查文件名和文件夹名,因为代码没有22行。

$ g++ -g -o name name.cpp 
$ g++ --version
g++ (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2020-04-20
    • 2016-09-21
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多