Everything you've said about templates is proven to be wrong:
1) You don't need all of that indirection to access an element.
2) Iterators can be implemented and used with a templated class.
So you need to answer a basic question -- how does std::list seem to accomplish everything that you say you want to do?
The only conclusion that anyone reasonable can come with as to why you can't implement templated list class with iterators is that you do not currently have the knowledge to write the templated class correctly to do these things. The code above proves that there is nothing stopping you from writing the singly-linked list as a templated code using iterators to access the elements.
There is nothing wrong with not knowing how to do something, all of us has asked questions and learned. However, what is wrong is stating conclusions based on faulty "facts".
Last edited by Paul McKenzie; March 19th, 2009 at 06:29 PM.