5 #ifndef VCCC_ITERATOR_INDIRECT_EQUIVALENCE_RELATION_HPP
6 #define VCCC_ITERATOR_INDIRECT_EQUIVALENCE_RELATION_HPP
21 template<
typename F,
typename I1,
typename I2>
22 struct indirect_equivalence_relation_impl_2
24 equivalence_relation<F&, iter_value_t<I1>&, iter_value_t<I2>&>,
25 equivalence_relation<F&, iter_value_t<I1>&, iter_reference_t<I2>>,
26 equivalence_relation<F&, iter_reference_t<I1>, iter_value_t<I2>&>,
27 equivalence_relation<F&, iter_reference_t<I1>, iter_reference_t<I2>>,
28 equivalence_relation<F&, iter_common_reference_t<I1>, iter_common_reference_t<I2>>
31 template<
typename F,
typename I1,
typename I2,
bool = conjunction<
32 indirectly_readable<I1>,
33 indirectly_readable<I2>,
36 struct indirect_equivalence_relation_impl_1 : indirect_equivalence_relation_impl_2<F, I1, I2> {};
37 template<
typename F,
typename I1,
typename I2>
38 struct indirect_equivalence_relation_impl_1<F, I1, I2, false> : std::false_type {};
45 template<
typename F,
typename I1,
typename I2 = I1>
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: indirect_equivalence_relation.hpp:46