aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__algorithm/ranges_for_each_n.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/__algorithm/ranges_for_each_n.h')
-rw-r--r--libcxx/include/__algorithm/ranges_for_each_n.h19
1 files changed, 6 insertions, 13 deletions
diff --git a/libcxx/include/__algorithm/ranges_for_each_n.h b/libcxx/include/__algorithm/ranges_for_each_n.h
index 261816aba436..53ccb9a6035a 100644
--- a/libcxx/include/__algorithm/ranges_for_each_n.h
+++ b/libcxx/include/__algorithm/ranges_for_each_n.h
@@ -24,7 +24,7 @@
# pragma GCC system_header
#endif
-#if _LIBCPP_STD_VER > 17
+#if _LIBCPP_STD_VER >= 20
_LIBCPP_BEGIN_NAMESPACE_STD
@@ -35,32 +35,25 @@ using for_each_n_result = in_fun_result<_Iter, _Func>;
namespace __for_each_n {
struct __fn {
-
- template <input_iterator _Iter,
- class _Proj = identity,
- indirectly_unary_invocable<projected<_Iter, _Proj>> _Func>
- _LIBCPP_HIDE_FROM_ABI constexpr
- for_each_n_result<_Iter, _Func> operator()(_Iter __first,
- iter_difference_t<_Iter> __count,
- _Func __func,
- _Proj __proj = {}) const {
+ template <input_iterator _Iter, class _Proj = identity, indirectly_unary_invocable<projected<_Iter, _Proj>> _Func>
+ _LIBCPP_HIDE_FROM_ABI constexpr for_each_n_result<_Iter, _Func>
+ operator()(_Iter __first, iter_difference_t<_Iter> __count, _Func __func, _Proj __proj = {}) const {
while (__count-- > 0) {
std::invoke(__func, std::invoke(__proj, *__first));
++__first;
}
return {std::move(__first), std::move(__func)};
}
-
};
} // namespace __for_each_n
inline namespace __cpo {
- inline constexpr auto for_each_n = __for_each_n::__fn{};
+inline constexpr auto for_each_n = __for_each_n::__fn{};
} // namespace __cpo
} // namespace ranges
_LIBCPP_END_NAMESPACE_STD
-#endif // _LIBCPP_STD_VER > 17
+#endif // _LIBCPP_STD_VER >= 20
#endif // _LIBCPP___ALGORITHM_RANGES_FOR_EACH_N_H