using iterators_size_type = typename std::common_type<typename std::make_unsigned<typename std::iterator_traits<Iterators>::difference_type>::type...>::type |
A SFINAE-friendly alias to a common type which corresponds to unsigned counterparts of difference types of the parameter iterators.
Iterators | a template parameter pack of iterators whose difference_type obtained via std::iterator_traits is converted to the respective unsigned analogues using std::make_unsigned and then combined together using std::common_type. |