У меня есть карта с ключом string и значением struct, я не знаю, почему я не могу создать экземпляр объекта с помощью список инициализаторов:
#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) с С++ 11.