C ++ static(string)成员初始化逻辑

时间:2016-10-28 00:38:14

标签: c++ static constexpr

为什么我在第2行和第3行(见下文)中遇到编译器错误而不是第1行?

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

};

1 个答案:

答案 0 :(得分:0)

需要立即初始化或构建

constexpr,并在同一名称空间内的翻译单元中使用其他静态成员。

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