Если у меня есть переменная, объявленная со сложным типом, например:Используйте тип элемента класса из локальной переменной
std::unordered_map<PathKey,unsigned int> childDict;
Есть ли способ, чтобы объявить переменные с использованием подтипов основного типа класса ?
Я хотел бы сделать что-то такое, как:
childDict::iterator iter = childDict.begin();
Но это не действует с ++.
Я знаю, что есть и другие варианты:
- авто, но я стараюсь избегать его по многим причинам, в том числе unreadability кода. Вы не можете легко понять, что такое тип переменной (это итератор? Пара? Указатель?). Эта проблема отсутствует с указанным выше методом.
- ЬурейеГо типа первого, но если выше метод работал, я думаю, было бы более краткими и код будет очень ясно
Есть ли способ сделать это?
'decltype (childDict) :: iterator'? –
На мой взгляд, инструмент должен соответствовать вашим потребностям, а не адаптироваться к инструменту. Это означает, что если ваша среда IDE не позволяет использовать авто, вам следует искать другую среду IDE. И используйте auto. – Rene
Любопытно, какая IDE вы используете, у которой есть проблемы с «авто»? – roalz