#include <initializer_list>
#include <iostream>
#include <map>
#include <string>
#include <utility>
struct Typer
{
std::string data;
Typer(const char *s) : data(s) {}
};
struct MyClass
{
MyClass(std::initializer_list<std::pair<std::string, Typer>> i)
: myMap(begin(i), end(i))
{}
std::map<std::string, Typer> myMap;
};
int main()
{
MyClass m = {
{"foo", "bar"},
{"biz", "buz"},
{"bez", "boz"}
};
for (auto&& p: m.myMap)
std::cout << p.first << " - " << p.second.data << '\n';
}
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHV0aWxpdHk+CgoKc3RydWN0IFR5cGVyCnsKCXN0ZDo6c3RyaW5nIGRhdGE7CgoJVHlwZXIoY29uc3QgY2hhciAqcykgOiBkYXRhKHMpIHt9Cn07CgoKc3RydWN0IE15Q2xhc3MKewoJTXlDbGFzcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBUeXBlcj4+IGkpCgkJOiBteU1hcChiZWdpbihpKSwgZW5kKGkpKQoJe30KCQoJc3RkOjptYXA8c3RkOjpzdHJpbmcsIFR5cGVyPiBteU1hcDsKfTsKCmludCBtYWluKCkKewoJTXlDbGFzcyBtID0gewoJICAgIHsiZm9vIiwgImJhciJ9LAoJICAgIHsiYml6IiwgImJ1eiJ9LAoJICAgIHsiYmV6IiwgImJveiJ9Cgl9OwoJZm9yIChhdXRvJiYgcDogbS5teU1hcCkKCQlzdGQ6OmNvdXQgPDwgcC5maXJzdCA8PCAiIC0gIiA8PCBwLnNlY29uZC5kYXRhIDw8ICdcbic7Cn0=