По сути, у меня есть карта в качестве переменной-члена в классе, которую я хотел бы инициализировать с помощью пары ключ-значение в разделе инициализации базового члена.
Parser::Parser()
:operations() //the dictionary
{
}
Я не совсем уверен, что синтаксис для этого. Я думал что-то вроде:
Parser::Parser()
:operations({"hello","goodbye"},{"foo","bar"})
{
}
но это не работает
Есть идеи?
Вам не хватает списка инициализатора:
Parser::Parser()
:operations({{"hello","goodbye"},{"foo","bar"}})
{
}
Это также должно работать:
Parser::Parser()
:operations{{"hello","goodbye"},{"foo","bar"}}
{
}
демонстрация Вот.
редактироватьэто альтернатива, которая должна работать под VS:
struct a {
std::map<int, int> x;
static std::map<int, int> make_map() {
std::map<int, int> some_map = {{1,2}, {3,4}};
return some_map;
}
a() : x(make_map()) {}
};
Других решений пока нет …