http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59042
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Your code is not valid, you should be using typename iterator_traits<OutputIterator>::value_type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59042
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Your code is not valid, you should be using typename iterator_traits<OutputIterator>::value_type