                          >::type* = 0)  {      typedef typename          std::iterator_traits<InputIterator>::value_type          value_type;        const size_t size = iterator_range_size(first, last);        // copy values to temporary vector on the 