5 #ifndef VCCC_RANGES_VIEWS_TRANSFORM_HPP
6 #define VCCC_RANGES_VIEWS_TRANSFORM_HPP
28 template<
typename R,
typename F,
bool = conjunction<input_range<R>, copy_constructible<F>>::value >
29 struct check_range : std::false_type {};
30 template<
typename R,
typename F>
31 struct check_range<R, F, true>
35 regular_invocable<F&, range_reference_t<R>>
39 template<
typename R,
typename F, std::enable_if_t<
conjunction<
41 check_range<all_t<R>, std::decay_t<F>>
49 std::is_object<std::decay_t<F>>
Definition: range_adaptor.hpp:25
constexpr VCCC_INLINE_OR_STATIC detail::transform_niebloid transform
Definition: transform.hpp:61
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: conjunction.hpp:22
specifies that an object of a type can be copy constructed and move constructed
Definition: copy_constructible.hpp:55
specifies the requirements for a range to be safely convertible to a view
Definition: viewable_range.hpp:59