template void simple_insertion_sort(Iterator first, Iterator last) { Iterator k = first; while (k != last) { // Insert *k into correct position. std::iterator_traits::value_type value = *k; Iterator i = k; Iterator j = k; while (j != first) { --i; if (value < *i) *j = *i; else break; --j; } *j = value; ++k; } }