【问题标题】:Problem when trying to intialize a vector as a class member尝试将向量初始化为类成员时出现问题
【发布时间】:2020-02-06 12:10:46
【问题描述】:

我正在尝试像这样初始化一个向量:

    std::vector<u8> ConstPldData =
        { 0x30, 0x30, 0x30, 0x32, 0x30, 0x35, 0x31, 0x34, 0x30, 0x30, 0x30, 0x38, 0x31, 0x30 };

但我总是遇到同样的错误:

error: could not convert '{48, 48, 48, 50, 48, 53, 49, 52, 48, 48, 48, 56, 49, 48}' from '<brace-enclosed initializer list>' to 'std::vector<unsigned char>'

有什么线索吗?

【问题讨论】:

  • 你用的是什么编译器?哪个版本的编译器?构建时您有哪些标志和选项?您显示的内容自 C++11 标准起就有效,因此您的编译器非常旧,或者在构建使用 C++11(或更高版本)标准时没有设置正确的标志/选项。
  • ConstPldData 不使用 const std::vector... 奇怪。
  • 该错误消息与 C++11 之前的编译器一致。所以我同意 Someprogrammerdude - 你的编译器早于 C++11,或者你正在构建 C++11 之前的模式。

标签: c++ vector initialization


【解决方案1】:

您不是在 C++11(或更高版本)中编译。如果我将 -std=c++98 传递给我的编译器设置,我只能重现此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-14
    • 2011-09-21
    • 2020-01-08
    • 1970-01-01
    • 2022-01-21
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多