One of the most important and convenient iterators (which C++ fails to deliver) are what GoF calls "roboust iterators": iterators that allow deletions. To get there safely and conveniently iterators have to be made a language feature, since it requires static analysis in the general case, IMO.Want to innovate? Provide language support.
http://forum.dlang.org/post/hmtj0e$1qmg$1...@digitalmars.com