5 #ifndef VCCC_CONCEPTS_COMMON_WITH_HPP_ 
    6 #define VCCC_CONCEPTS_COMMON_WITH_HPP_ 
   24                same_as< common_type_t<T, U>, common_type_t<U, T> >,
 
   26                    common_reference<std::add_lvalue_reference_t<const T>,
 
   27                                     std::add_lvalue_reference_t<const U>> >
 
   30 struct common_with_impl_2 : std::false_type {};
 
   32 template<
typename T, 
typename U>
 
   33 struct common_with_impl_2<T, U, true>
 
   35           std::is_constructible< common_type_t<T, U>, decltype(std::declval<T>()) >,
 
   36           std::is_constructible< common_type_t<T, U>, decltype(std::declval<U>()) >,
 
   37           common_reference_with<
 
   38               std::add_lvalue_reference_t<const T>,
 
   39               std::add_lvalue_reference_t<const U>>,
 
   40           common_reference_with<
 
   41               std::add_lvalue_reference_t<common_type_t<T, U>>,
 
   43                   std::add_lvalue_reference_t<const T>,
 
   44                   std::add_lvalue_reference_t<const U>
 
   53     bool = conjunction<has_typename_type< common_type<T, U> >,
 
   54                        has_typename_type< common_type<U, T> >
 
   57 struct common_with_impl_1 : common_with_impl_2<T, U> {};
 
   59 template<
typename T, 
typename U>
 
   60 struct common_with_impl_1<T, U, false> : std::false_type {};
 
   78 template<
typename T, 
typename U>
 
Definition: directory.h:12
 
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
 
specifies that two types share a common type
Definition: common_with.hpp:79