Distributed Ranges
Loading...
Searching...
No Matches
include
dr
detail
ranges_utils.hpp
1
// SPDX-FileCopyrightText: Intel Corporation
2
//
3
// SPDX-License-Identifier: BSD-3-Clause
4
5
#pragma once
6
7
namespace
dr::__detail {
8
9
//
10
// std::ranges::enumerate handles unbounded ranges and returns a range
11
// where end() is a different type than begin(). Most of our code
12
// assumes std::ranges::common_range. bounded_enumerate requires a
13
// bounded range and returns a common_range.
14
//
15
template
<
typename
R>
auto
bounded_enumerate(R &&r) {
16
auto
size = rng::distance(r);
17
using
W = std::uint32_t;
18
return
rng::views::zip(rng::views::iota(W(0), W(size)), r);
19
}
20
21
}
// namespace dr::__detail
Generated by
1.9.6