Undefined reference to static constexpr char[]

I want to have a static const char array in my class. GCC complained and told me I should use constexpr, although now it’s telling me it’s an undefined reference. If I make the array a non-member then it compiles. What is going on?

// .hpp
struct foo {
  void bar();
  static constexpr char baz[] = "quz";
};

// .cpp
void foo::bar() {
  std::string str(baz); // undefined reference to baz
}

6 Answers
6

Leave a Comment