@@ -154,10 +154,7 @@ struct concatenate_view_iterator {
154154 };
155155 auto [...indexes ] = bounded::index_sequence_struct<sizeof ...(RangeViews)>();
156156 // Use {} to enforce initialization order
157- return tv::apply (
158- tv::tuple{specific_range (indexes)...},
159- bounded::construct<concatenate_view_iterator>
160- );
157+ return concatenate_view_iterator{specific_range (indexes)...};
161158 }
162159
163160 template <typename ... RHSRanges> requires (... and subtractable<iterator_t <RangeViews>, iterator_t <RHSRanges>>)
@@ -170,10 +167,8 @@ struct concatenate_view_iterator {
170167 auto transform = [](auto const lhs_range, auto const rhs_range) {
171168 return containers::begin (lhs_range) - containers::begin (rhs_range);
172169 };
173- return tv::apply (
174- tv::transform (transform, lhs.m_range_views , rhs.m_range_views ),
175- [](auto ... integers) { return (... + integers); }
176- );
170+ auto const [...integers ] = tv::transform (transform, lhs.m_range_views , rhs.m_range_views );
171+ return (... + integers);
177172 }
178173
179174
@@ -182,10 +177,8 @@ struct concatenate_view_iterator {
182177 concatenate_view_iterator const rhs
183178 ) requires(... and sized_range<RangeViews>) {
184179 auto transform = [](auto const range) { return containers::size (range); };
185- return tv::apply (
186- tv::transform (transform, rhs.m_range_views ),
187- [](auto ... integers) { return (... + integers); }
188- );
180+ auto const [...integers ] = tv::transform (transform, rhs.m_range_views );
181+ return (... + integers);
189182 }
190183
191184 friend constexpr auto operator -(concatenate_view_iterator const lhs, std::default_sentinel_t const rhs) {
0 commit comments