Прошу прощения за очень неопределенный заголовок, я действительно не знал, как назвать этот вопрос.
Скажем, у меня есть это:
std::list<std::string> msgs;
for (std::list<std::string>::iterator it = msgs.begin(); it < msgs.end(); it++) {
// ...
}
Для меня это трудно прочитать. std::list<std::string>::iterator
почти похоже на магическое число, особенно если объявление msgs
далека, как в файле заголовка. ИМО было бы легче читать и гораздо более семантично, если бы это было примерно так:
std::list<std::string> msgs;
for (msgs.iterator it = msgs.begin(); it < msgs.end(); it++) {
// ...
}
Теперь это явно незаконно С++. Но мой вопрос в том, есть ли способ реализовать что-то, что поддерживает запись объявлений итератора, как это?