【问题标题】:C++ static (string) member initialization logicC++ 静态(字符串)成员初始化逻辑
【发布时间】:2017-03-10 19:49:04
【问题描述】:

为什么我在第 2 行和第 3 行(见下文)中出现编译器错误,而不是第一行?

struct X {
  static constexpr const char* f1 = "f1"; // ok
  static const char* f2 = "f2";          // error
  static const std::string f3 = "f3";  // error

};

【问题讨论】:

    标签: c++ static constexpr


    【解决方案1】:

    constexpr 需要立即初始化或构造,以及同一命名空间内翻译单元中的其他静态成员。

    const std::string X::f3 = "f3";
    

    【讨论】:

    • 我认为我永远不会理解的 ODR-used 东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多