Skip to content

Commit 72d78ba

Browse files
committed
cleanup
1 parent 208b2ea commit 72d78ba

File tree

5 files changed

+46
-50
lines changed

5 files changed

+46
-50
lines changed

core/include/detray/utils/ranges/empty.hpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ template <typename value_t>
2121
class empty_view : public detray::ranges::view_interface<empty_view<value_t>> {
2222

2323
public:
24+
/// Iterator category: bidirectional
2425
using iterator_t = value_t*;
2526

2627
/// Default constructor
2728
constexpr empty_view() = default;
2829

29-
/// Copy assignment operator
30+
/// Copy assignment operator - does nothing
3031
DETRAY_HOST_DEVICE
3132
empty_view& operator=(const empty_view&){};
3233

@@ -50,14 +51,17 @@ class empty_view : public detray::ranges::view_interface<empty_view<value_t>> {
5051
DETRAY_HOST_DEVICE
5152
static constexpr bool empty() noexcept { return true; }
5253

54+
/// No value contained in view
55+
/// @{
5356
DETRAY_HOST_DEVICE
54-
constexpr value_t front() const noexcept { return {}; }
57+
constexpr value_t front() const noexcept = delete;
5558

5659
DETRAY_HOST_DEVICE
57-
constexpr value_t back() const noexcept { return {}; }
60+
constexpr value_t back() const noexcept = delete;
5861

5962
DETRAY_HOST_DEVICE
60-
constexpr value_t operator[](const dindex) const noexcept { return {}; }
63+
constexpr value_t operator[](const dindex) const noexcept = delete;
64+
/// @}
6165
};
6266

6367
namespace views {

core/include/detray/utils/ranges/iota.hpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,21 @@ class iota_view : public detray::ranges::view_interface<iota_view<incr_t>> {
9191
std::enable_if_t<not detray::detail::is_interval_v<deduced_incr_t>,
9292
bool> = true>
9393
DETRAY_HOST_DEVICE constexpr explicit iota_view(deduced_incr_t &&start)
94-
: m_start{std::forward<deduced_incr_t>(start)},
95-
m_end{std::forward<deduced_incr_t>(start) + 1} {}
94+
: m_start{start}, m_end{start + 1} {}
9695

9796
/// Construct from an @param interval that defines start and end values.
9897
template <typename interval_t,
9998
std::enable_if_t<detray::detail::is_interval_v<interval_t>,
10099
bool> = true>
101100
DETRAY_HOST_DEVICE constexpr explicit iota_view(interval_t &&interval)
102-
: m_start{detray::detail::get<0>(std::forward<interval_t>(interval))},
103-
m_end{detray::detail::get<1>(std::forward<interval_t>(interval))} {}
101+
: m_start{detray::detail::get<0>(interval)},
102+
m_end{detray::detail::get<1>(interval)} {}
104103

105104
/// Construct from a @param start start and @param end value.
106105
template <typename deduced_incr_t>
107106
DETRAY_HOST_DEVICE constexpr iota_view(deduced_incr_t &&start,
108107
deduced_incr_t &&end)
109-
: m_start{std::forward<deduced_incr_t>(start)},
110-
m_end{std::forward<deduced_incr_t>(end) - 1} {}
108+
: m_start{start}, m_end{end - 1} {}
111109

112110
/// Copy assignment operator
113111
DETRAY_HOST_DEVICE

core/include/detray/utils/ranges/join.hpp

+12-10
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct join_iterator;
2424

2525
}
2626

27-
/// @brief Range adaptor that joins together different ranges of the same type.
27+
/// @brief Range adaptor that joins different ranges of the same type (static)
2828
///
2929
/// @see https://en.cppreference.com/w/cpp/ranges/join_view
3030
///
@@ -148,7 +148,7 @@ namespace detail {
148148
/// @brief Sequentially iterate through multiple ranges of the same type.
149149
///
150150
/// Once the sentinel of one range is reached, set the current iterator to the
151-
/// next ranges 'begin'.
151+
/// next ranges 'begin' (or 'end' if decrementing)
152152
///
153153
/// @tparam iterator_coll_t type of iterator collection of ranges to be joined.
154154
/// Can contain const iterators.
@@ -187,14 +187,14 @@ struct join_iterator {
187187
/// @returns true if it points to the same value.
188188
DETRAY_HOST_DEVICE constexpr bool operator==(
189189
const join_iterator &rhs) const {
190-
return m_iter == rhs.m_iter;
190+
return (m_iter == rhs.m_iter);
191191
}
192192

193193
/// @returns false if it points to the same value (usually the global
194194
/// sentinel of the join).
195195
DETRAY_HOST_DEVICE constexpr bool operator!=(
196196
const join_iterator &rhs) const {
197-
return m_iter != rhs.m_iter;
197+
return (m_iter != rhs.m_iter);
198198
}
199199

200200
/// Increment current iterator and check for switch between ranges.
@@ -229,12 +229,12 @@ struct join_iterator {
229229
}
230230

231231
/// @returns the single value that the iterator points to.
232-
DETRAY_HOST_DEVICE auto operator*() -> value_type & { return *m_iter; }
232+
DETRAY_HOST_DEVICE
233+
constexpr auto operator*() -> value_type & { return *m_iter; }
233234

234235
/// @returns the single value that the iterator points to - const
235-
DETRAY_HOST_DEVICE constexpr auto operator*() const -> const value_type & {
236-
return *m_iter;
237-
}
236+
DETRAY_HOST_DEVICE
237+
constexpr auto operator*() const -> const value_type & { return *m_iter; }
238238

239239
/// @returns an iterator advanced by @param j through the join.
240240
template <typename I = iterator_t,
@@ -330,7 +330,8 @@ struct join_iterator {
330330
bool> = true>
331331
DETRAY_HOST_DEVICE constexpr auto operator[](const dindex i) const
332332
-> const value_type & {
333-
int offset{static_cast<int>(i) - (m_iter - (*m_begins)[0])};
333+
difference_type offset{static_cast<difference_type>(i) -
334+
(m_iter - (*m_begins)[0])};
334335
return *(*this + offset);
335336
}
336337

@@ -340,7 +341,8 @@ struct join_iterator {
340341
bool> = true>
341342
DETRAY_HOST_DEVICE constexpr auto operator[](const dindex i)
342343
-> value_type & {
343-
int offset{static_cast<int>(i) - (m_iter - (*m_begins)[0])};
344+
difference_type offset{static_cast<difference_type>(i) -
345+
(m_iter - (*m_begins)[0])};
344346
return *(*this + offset);
345347
}
346348

core/include/detray/utils/ranges/pick.hpp

-2
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ class pick_view : public detray::ranges::view_interface<
131131
-> iterator & {
132132
detray::ranges::advance(m_seq_iter, j);
133133
m_range_begin += *m_seq_iter;
134-
135134
return *this;
136135
}
137136

@@ -175,7 +174,6 @@ class pick_view : public detray::ranges::view_interface<
175174
m_range_end = other.m_range_end;
176175
m_seq_begin = other.m_seq_begin;
177176
m_seq_end = other.m_seq_end;
178-
179177
return *this;
180178
}
181179

core/include/detray/utils/ranges/subrange.hpp

+22-28
Original file line numberDiff line numberDiff line change
@@ -29,52 +29,48 @@ class subrange : public detray::ranges::view_interface<subrange<range_t>> {
2929
public:
3030
using iterator_t = typename detray::ranges::iterator_t<range_t>;
3131
using const_iterator_t = typename detray::ranges::const_iterator_t<range_t>;
32-
using range_size_t = typename detray::ranges::range_size_t<range_t>;
32+
using difference_t = typename detray::ranges::range_difference_t<range_t>;
3333

3434
/// Default constructor
3535
subrange() = default;
3636

3737
/// Construct from an @param start and @param end iterator pair.
38-
DETRAY_HOST_DEVICE constexpr subrange(iterator_t &&start, iterator_t &&end)
39-
: m_begin{std::forward<iterator_t>(start)},
40-
m_end{std::forward<iterator_t>(end)} {}
38+
template <typename deduced_itr_t,
39+
std::enable_if_t<std::is_same_v<deduced_itr_t, iterator_t>,
40+
bool> = true>
41+
DETRAY_HOST_DEVICE constexpr subrange(deduced_itr_t &&start,
42+
deduced_itr_t &&end)
43+
: m_begin{std::forward<deduced_itr_t>(start)},
44+
m_end{std::forward<deduced_itr_t>(end)} {}
4145

4246
/// Construct from a @param range.
4347
template <
4448
typename deduced_range_t,
4549
std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true>
4650
DETRAY_HOST_DEVICE constexpr subrange(deduced_range_t &&range)
47-
: m_begin{detray::ranges::begin(std::forward<deduced_range_t>(range))},
48-
m_end{detray::ranges::end(std::forward<deduced_range_t>(range))} {}
51+
: m_begin{detray::ranges::begin(range)},
52+
m_end{detray::ranges::end(range)} {}
4953

5054
/// Construct from a @param range and starting position @param pos. Used
5155
/// as an overload when only a single position is needed.
5256
template <
5357
typename deduced_range_t,
5458
std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true>
5559
DETRAY_HOST_DEVICE constexpr subrange(deduced_range_t &&range,
56-
range_size_t pos)
57-
: m_begin{detray::ranges::next(
58-
detray::ranges::begin(std::forward<deduced_range_t>(range)),
59-
pos)},
60+
difference_t pos)
61+
: m_begin{detray::ranges::next(detray::ranges::begin(range), pos)},
6062
m_end{detray::ranges::next(m_begin)} {}
6163

6264
/// Construct from a @param range and an index range provided by a volume
6365
/// @param vol.
6466
template <
6567
typename deduced_range_t, typename volume_t,
68+
typename value_t = detray::ranges::range_value_t<deduced_range_t>,
6669
std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true,
6770
typename = typename std::remove_reference_t<volume_t>::volume_def>
68-
DETRAY_HOST_DEVICE subrange(deduced_range_t &&range, const volume_t &vol) {
69-
const dindex_range r = vol.template range<
70-
typename detray::ranges::range_value_t<deduced_range_t>>();
71-
72-
auto start =
73-
detray::ranges::begin(std::forward<deduced_range_t>(range));
74-
75-
m_begin = start + detray::detail::get<0>(r);
76-
m_end = start + detray::detail::get<1>(r);
77-
}
71+
DETRAY_HOST_DEVICE subrange(deduced_range_t &&range, const volume_t &vol)
72+
: subrange(std::forward<deduced_range_t>(range),
73+
vol.template range<value_t>()) {}
7874

7975
/// Construct from a @param range and an index range @param pos.
8076
template <
@@ -84,12 +80,10 @@ class subrange : public detray::ranges::view_interface<subrange<range_t>> {
8480
true>
8581
DETRAY_HOST_DEVICE constexpr subrange(deduced_range_t &&range,
8682
index_range_t &&pos)
87-
: m_begin{detray::ranges::next(
88-
detray::ranges::begin(std::forward<deduced_range_t>(range)),
89-
detray::detail::get<0>(pos))},
90-
m_end{detray::ranges::next(
91-
detray::ranges::begin(std::forward<deduced_range_t>(range)),
92-
detray::detail::get<1>(pos))} {}
83+
: m_begin{detray::ranges::next(detray::ranges::begin(range),
84+
detray::detail::get<0>(pos))},
85+
m_end{detray::ranges::next(detray::ranges::begin(range),
86+
detray::detail::get<1>(pos))} {}
9387

9488
/// Copy assignment operator
9589
DETRAY_HOST_DEVICE
@@ -105,7 +99,7 @@ class subrange : public detray::ranges::view_interface<subrange<range_t>> {
10599

106100
/// @return start position of the range - const
107101
DETRAY_HOST_DEVICE
108-
constexpr auto begin() const -> const_iterator_t { return m_begin; }
102+
constexpr auto begin() const -> iterator_t { return m_begin; }
109103

110104
/// @return sentinel of the range.
111105
DETRAY_HOST_DEVICE
@@ -133,7 +127,7 @@ template <
133127
std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true>
134128
DETRAY_HOST_DEVICE subrange(
135129
deduced_range_t &&range,
136-
typename detray::ranges::range_size_t<deduced_range_t> pos)
130+
typename detray::ranges::range_difference_t<deduced_range_t> pos)
137131
->subrange<deduced_range_t>;
138132

139133
template <

0 commit comments

Comments
 (0)