我有一个类有点像:
class Object {
public:
struct Flag {
const uint32_t bit = 0;
const wchar_t* name = L"";
const wchar_t sign = L"";
}
static std::map<const char*, Flag> Flags;
}
Run Code Online (Sandbox Code Playgroud)
我目前在VS2015,但想支持clang和gcc(最新的).我的问题是,我无法弄清楚如何用数据实际初始化该地图.
我尝试将其内联,例如:
static std::map<const char*, Flag> Flags = {
{ "FOO1", { 0, L"FOO1", L'A' } },
{ "FOO2", { 1, L"FOO3", L'B' } },
{ "FOO3", { 2, L"FOO3", L'C' } }
}
Run Code Online (Sandbox Code Playgroud)
但是抱怨说只有const整数类型可以在课堂上.好的!所以我只是将它作为类定义中的声明(如第一个代码片段所示),并将其放在关联的cpp中:
static std::map<const char*, Object::Flag> Object::Flags = {
{ "FOO1", { 0, L"FOO1", L'A' } }, …Run Code Online (Sandbox Code Playgroud)