5 #ifndef VCCC_TYPE_TRAITS_SIMPLE_COMMON_REFERENCE_HPP_
6 #define VCCC_TYPE_TRAITS_SIMPLE_COMMON_REFERENCE_HPP_
29 template<
typename T1,
typename T2>
32 std::is_reference< detail::test_ternary_t<T1, T2> >::value,
33 type_identity<detail::test_ternary_t<T1, T2>>,
34 no_simple_common_reference
37 template<
typename T1,
typename T2>
43 template<
typename T1,
typename T2,
typename C>
46 conjunction< std::is_convertible<T1, C>, std::is_convertible<T2, C> >::value,
48 no_simple_common_reference> {};
57 template<
typename T1,
typename T2,
typename CWrap>
62 std::add_rvalue_reference_t< std::remove_reference_t<typename CWrap::type> >
65 template<
typename T1,
typename T2,
typename CWrap>
77 template<
typename B,
typename DWrap>
80 std::is_convertible< B, typename DWrap::type >::value,
81 type_identity<typename DWrap::type>,
82 no_simple_common_reference
85 template<
typename B,
typename DWrap>
93 template<
typename T1,
typename T2>
96 template<
typename T1,
typename T2>
100 template<
typename T1,
typename T2>
104 template<
typename A,
typename B>
108 template<
typename B,
typename A>
typename copy_cv< From, To >::type copy_cv_t
Definition: copy_cvref.hpp:63
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: has_typename_type.hpp:18
Definition: simple_common_reference.hpp:18
Definition: simple_common_reference.hpp:27
Definition: simple_common_reference.hpp:75
Definition: simple_common_reference.hpp:48
Definition: simple_common_reference.hpp:55
Definition: simple_common_reference.hpp:106
Definition: simple_common_reference.hpp:98
Definition: simple_common_reference.hpp:94