Fel*_*bek 1 c++ inner-classes constexpr c++14
我有一个 C++14 项目,无法使用 C++17 内联变量。
// myclass.h
class MyClass {
struct Inner {
using StringArray = std::array<const char*, 1>;
static constexpr StringArray kStrings{{ "foo" }};
}
}
//myclass.cpp
constexpr MyClass::Inner::StringArray kStrings;
// ^^^^^
// Error: "Inner" is a private member of "MyClass"
Run Code Online (Sandbox Code Playgroud)
是否可以让它在 C++14 中工作,或者只能在 C++17 中工作?
您试图为名为 的新文件范围变量给出定义::kStrings。您想改为定义静态成员MyClass::Inner::kStrings:
constexpr MyClass::Inner::StringArray MyClass::Inner::kStrings;
Run Code Online (Sandbox Code Playgroud)