Я создаю класс, и я хочу знать, как создать конструктор, похожий на стиль std::map
или std::vector
.Конструктор, похожий на std :: map или std :: vector в классе
std::map<std::string, std::string> map = {
{"foo", "bar"},
{"biz", "buz"},
{"bez", "boz"}
};
Разница заключается в том, что я не хочу, чтобы мой класс, чтобы попросить типов, которые хочет принять, так же, как std::map
делает.
std::map<std::string, std::string>
Я хочу, чтобы мой класс, чтобы принять этот стиль аргументов:
{
{"foo", "bar"},
{"biz", "buz"},
{"bez", "boz"}
};
Но с определенным типом. (std :: string, Typer)
«Typer» - это класс, который я буду вставлять как значение на std::map
.
Вы не можете выводить списки инициализатора. –
Простой ответ: используйте карту в качестве второго параметра, следующим образом: const std :: map & data. В этом случае вы можете использовать свой синтаксис для второго параметра. Между прочим, это не дублирующий вопрос. Здесь не обязательно использовать список инициализаторов. Это работает как в VS2013, так и в GCC 4.8.1. –