@@ -134,29 +134,29 @@ struct concatenate_view_iterator {
134
134
)
135
135
)
136
136
friend constexpr auto operator+(concatenate_view_iterator lhs, Offset const offset) -> concatenate_view_iterator {
137
- return [&]<std::size_t ... indexes>(std::index_sequence<indexes...>) {
138
- BOUNDED_ASSERT (offset >= 0_bi);
139
- auto remaining_offset = bounded::integer<0 , bounded::builtin_max_value<Offset>>(::bounded::assume_in_range (offset, 0_bi, bounded::integer (numeric_traits::max_value<Offset>)));
140
- auto specific_range = [&](auto const index) {
141
- auto range = std::move (lhs).m_range_views [index];
142
- if constexpr (std::same_as<Offset, bounded::constant_t <1 >>) {
143
- if (remaining_offset == 0_bi or containers::is_empty (range)) {
144
- return range;
145
- }
146
- remaining_offset = 0_bi;
147
- return subrange (
148
- containers::begin (std::move (range)) + 1_bi,
149
- containers::end (std::move (range))
150
- );
151
- } else {
152
- auto const added_size = bounded::min (containers::size (range), remaining_offset);
153
- remaining_offset -= added_size;
154
- return subrange (
155
- containers::begin (std::move (range)) + added_size,
156
- containers::end (std::move (range))
157
- );
137
+ BOUNDED_ASSERT (offset >= 0_bi);
138
+ auto remaining_offset = bounded::integer<0 , bounded::builtin_max_value<Offset>>(::bounded::assume_in_range (offset, 0_bi, bounded::integer (numeric_traits::max_value<Offset>)));
139
+ auto specific_range = [&](auto const index) {
140
+ auto range = std::move (lhs).m_range_views [index];
141
+ if constexpr (std::same_as<Offset, bounded::constant_t <1 >>) {
142
+ if (remaining_offset == 0_bi or containers::is_empty (range)) {
143
+ return range;
158
144
}
159
- };
145
+ remaining_offset = 0_bi;
146
+ return subrange (
147
+ containers::begin (std::move (range)) + 1_bi,
148
+ containers::end (std::move (range))
149
+ );
150
+ } else {
151
+ auto const added_size = bounded::min (containers::size (range), remaining_offset);
152
+ remaining_offset -= added_size;
153
+ return subrange (
154
+ containers::begin (std::move (range)) + added_size,
155
+ containers::end (std::move (range))
156
+ );
157
+ }
158
+ };
159
+ return [&]<std::size_t ... indexes>(std::index_sequence<indexes...>) {
160
160
// Use {} to enforce initialization order
161
161
return tv::apply (
162
162
tv::tuple{specific_range (bounded::constant<indexes>)...},
0 commit comments