Removed dependency on STL iterator_traits