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