Re[2]: Вопрос целесообразности обобщения
От: Sm0ke Россия ksi
Дата: 05.07.23 16:11
Оценка: +1
Здравствуйте, bnk, Спасибо за ответ.

bnk>IMHO ты сам через неделю забудешь кто там first кто second


Дак я про что. Разработчики std::map заюзали std::pair имхо зря. Я вообще на данный момент не любитель этого pair с безымянными first и second.

bnk>Совсем по-простому, можно переменные завести (вместо комментариев):


bnk>
bnk>auto res = v_map.try_emplace(v_key, v_arg);

bnk>auto was_added = res.second;

bnk>if( was_added ) {
bnk>   auto info = res.first->second;
bnk>   info.some_method();
bnk>}
bnk>


bnk>Еще можно вместо структуры сделать типа декодер:


bnk>

bnk>struct decode {
bnk>  decode(my_map::iterator& it) : module_name(it->first), info(it->second) {}
bnk>  const my_map::key_type& module_name;
bnk>  my_map::mapped_type& info;
bnk>};

bnk>it = ...
bnk>decode(it).module_name
bnk>decode(it).info

bnk>


Выглядит как костыль. Делать pair + костыль, или сразу завести чёткую структуру с понятными именами.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.