【发布时间】:2018-12-10 10:37:34
【问题描述】:
我有一个带有 string 键和一个 struct 值的映射,我不知道为什么我不能使用 a list of initializers 实例化一个对象:
#include <string>
#include <map>
using namespace std;
struct CodeInfo
{
int _level = 0;
bool _reactive;
};
typedef map<string, CodeInfo> CodeInfos; // Key is code name
int main()
{
CodeInfos codes = { {"BARECODE", { 0, true }}, {"BARECODE2", { 0, false }} };
return 0;
}
这似乎很简单,但我不明白为什么会出现以下错误:
In function 'int main()':
24:80: error: could not convert '{{"BARECODE", {0, true}}, {"BARECODE2", {0, false}}}' from '<brace-enclosed initializer list>' to 'CodeInfos {aka std::map<std::basic_string<char>, CodeInfo>}'
我使用编译器 g++ (GCC) 4.9.1 20140922 (Red Hat 4.9.1-10) 和 C++11。
【问题讨论】:
标签: c++ class c++11 stdmap list-initialization