Здравствуйте, DelphiGuru, Вы писали:
DG>3) Из 2 следует, что итераторы, в принципе, можно определять и вне контейнера. Все, что нужно для создания итератора — это контейнер и тип хранимого в данном контейнере. И следовательно, итератор, указывающий на конец, в принципе не нужен, если мы все равно проверяем, то проверять надо в итераторе, указывающем начало.
Ну Александреску не так давно разразился
http://www.informit.com/articles/printerfriendly.aspx?p=1407357 насчет итераторов, да и в бусте уже давно есть им замена
http://www.boost.org/doc/libs/1_45_0/libs/range/doc/html/range/introduction.html
Но все это такой же "ООП" как и STL и как в D так и в C++ все это сделано на тех же шаблонах, иначе будет очень неудобно и коряво.