63 #include <type_traits>
82 ,
total_size_(begin < end && n_workers ? end - begin : 0)
85 static_assert(std::is_integral<T>::value);
117 template <
typename T1,
typename U1>
123 if constexpr (
sizeof(U) <
sizeof(std::size_t)) {
124 if (std::numeric_limits<U>::max() < n_workers) {
125 n_workers = std::numeric_limits<U>::max();
128 return {
begin,
end,
static_cast<U
>(n_workers)};
std::input_iterator_tag iterator_category
bool operator!=(Iterator const &rhs) const
Intervals(T begin, T end, U n_workers)
Interval< T > operator*() const
Iterator(T begin, U quot, U rem)
bool operator==(Iterator const &rhs) const
friend Intervals< T1 > makeIntervals(T1 begin, T1 end, std::size_t n_workers)
std::ptrdiff_t difference_type