5 #ifndef VCCC_RANGES_VIEWS_ZIP_TRANSFORM_HPP_
6 #define VCCC_RANGES_VIEWS_ZIP_TRANSFORM_HPP_
29 template<
typename FD,
bool = conjunction<copy_constructible<FD>, is_referencable<FD>>::value >
30 struct check : std::false_type {};
33 struct check<FD, true>
35 regular_invocable<FD&>,
36 std::is_object<invoke_result_t<FD&>>
40 template<
typename F, std::enable_if_t<check<std::decay_t<F&&>>::value,
int> = 0>
42 using FD = std::decay_t<decltype(f)>;
47 template<
typename F,
typename... Rs>
#define vccc_decay_copy(x)
Definition: decay_copy.hpp:12
constexpr VCCC_INLINE_OR_STATIC detail::zip_transform_niebloid zip_transform
Definition: zip_transform.hpp:58
typename detail::all_t_impl< R >::type all_t
Calculates the suitable view type of a viewable_range type.
Definition: all.hpp:107
typename invoke_result< F, Args... >::type invoke_result_t
Definition: is_invocable.hpp:66
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
constexpr VCCC_INLINE_OR_STATIC empty_view< T > empty
Definition: empty_view.hpp:53
Definition: directory.h:12
Definition: conjunction.hpp:22