【问题标题】:Could not convert '{1, 2 ,3, 4, 5, 6}' to list<int> C++?无法将 '{1, 2 ,3, 4, 5, 6}' 转换为 list<int> C++?
【发布时间】:2020-07-29 14:23:50
【问题描述】:

我是新手,我正在对列表、向量等进行一些研究。

[Error] in C++98 'val' 必须由构造函数初始化,而不是由 '{...}'

[错误] 无法将 '{1, 2, 3, 4, 5, 6}' 从 转换为 'std::list'

错误来自以下行:

list<int> val = {1,2,3,4,5,6};

发生这种情况是否有任何原因,或者我只是错过了大局?任何帮助将不胜感激,最亲切的问候!

【问题讨论】:

  • 也许您错过了这样一个事实,即您可能正在使用不支持当前 C++ 标准(至少是 C++11)的旧 C++98 编译器(如您的错误中所述),其中是否引入了这种方式的支撑初始化?
  • 由于您的编译器知道这是一个现代 C++ 功能(请参阅错误消息中对 C++98 的引用)我猜如果您选择了正确的编译器可以支持此功能编译器选项。
  • -std=c++11 在编译命令行中丢失。

标签: c++ list vector int


【解决方案1】:

initializer_list 是 C++ 11 功能,它可能在 C++98 中不可用(可能是您正在使用的工具链),这会导致此错误。

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多