Есть такая функция:
template<typename T>
T enumParser(/*boring parameters*/, std::map<std::string, T>& str2enum)
Я могу без проблем передать туда переменную типа std::map<std::string, T>. Но мне очень хтелось бы делать так:
enumParser(/*boring parameters*/,{{"str1", value_of_T_type}});
Я потыкал немного палочкой в доки и т.п. и выяснил что такие вещи передаются в виде std::initializer_list, так что поигрался с вариантами ароде std::initializer_list<std::pair<const std::string, T>> или std::initializer_list<pair_type> в надежде позже разобраться что делать с typename pair_type. Ничего интересного из этого не вышло.
Это вообще возможно? Использую GCC 11.