Why do algorithms use iterator_traitsT::value_type instead of iter::value_type?

Published --