5 #ifndef VCCC_ALGORITHM_RANGES_IN_FOR_EACH_N_HPP
6 #define VCCC_ALGORITHM_RANGES_IN_FOR_EACH_N_HPP
28 template<
typename I,
typename F>
33 struct for_each_n_niebloid {
36 struct check : std::false_type {};
37 template<
typename I,
typename Proj,
typename Fun>
47 for (; n-- > 0; ++
first) {
50 return {std::move(
first), std::move(f)};
constexpr VCCC_INLINE_OR_STATIC detail::for_each_n_niebloid for_each_n
Definition: for_each_n.hpp:56
constexpr invoke_result_t< F, Args... > invoke(F &&f, Args &&... args) noexcept(is_nothrow_invocable< F, Args... >::value)
Definition: invoke.hpp:38
typename iter_difference< T >::type iter_difference_t
Computes the difference type of T
Definition: iter_difference_t.hpp:49
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 0 > first
Definition: key_value.hpp:34
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: conjunction.hpp:22
function object that returns its argument unchanged
Definition: identity.hpp:25
specifies that a callable type can be invoked with the result of dereferencing an indirectly_readable...
Definition: indirectly_unary_invocable.hpp:73
Definition: in_fun_result.hpp:22