Здравствуйте, Sm0ke, Вы писали:
S>Вот бы можно было так без auto :
S>S>[my_map::iterator it, bool was_added] = v_map.try_emplace(v_key, v_arg);
S>
что за язык? Такое на С++ не компилируется.
S>Вот тут как раз можно бы и обобщить. Такая обёртка подошла бы не только для строк. Назвать к примеру wrap, и добавить как параметр шаблона хранимый тип.
S>Но мне кажется, что на этот случай наверняка должно быть уже готовое решение.
"обобщить" это не про С++

Для целочисленных значений есть давно известная идиома в виде enum class. А для других типов каждый изгаляется как может. Есть к примеру макрос BOOST_STRONG_TYPEDEF. Но честно говоря ради пары десятков строчек заводить зависимость от буста не многим по душе. Может было бы неплохо если бы в языке расширили идиому enum class. Не знаю насколько оно реализуемо. Но вот было бы что-то такое
enum class ModuleName : std::string { Invalid = "" };
и жизнь заиграла бы новыми красками