Skip to content

Commit 90763c2

Browse files
committed
Move some code outside of a lambda in concatenate_view
1 parent e0337b0 commit 90763c2

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

source/containers/algorithms/concatenate_view.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -134,29 +134,29 @@ struct concatenate_view_iterator {
134134
)
135135
)
136136
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;
158144
}
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...>) {
160160
// Use {} to enforce initialization order
161161
return tv::apply(
162162
tv::tuple{specific_range(bounded::constant<indexes>)...},

0 commit comments

Comments
 (0)