1 #ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED 2 #define BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED 26 namespace type_traits_detail
31 template<
class T,
class U>
struct common_type_impl;
54 boost::is_convertible<T, U>::value && !boost::is_convertible<U, T>::value,
55 boost::type_identity<U>,
57 typename boost::conditional<
59 boost::is_convertible<U, T>::value && !boost::is_convertible<T, U>::value,
60 boost::type_identity<T>,
62 common_type_impl3<T, U>
69 ct_class<T, U>::value,
70 common_type_class<T, U>,
71 common_type_impl3<T, U> >
::type 80 boost::is_pointer<T>::value || boost::is_pointer<U>::value,
81 composite_pointer_type<T, U>,
82 common_type_impl4<T, U> >
::type 91 boost::is_member_pointer<T>::value || boost::is_member_pointer<U>::value,
92 composite_member_pointer_type<T, U>,
93 common_type_impl5<T, U> >
::type 107 #endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
arithmetic_type< sizeof(select(cond()? T():U())) >::type type
#define BOOST_STATIC_CONSTANT(type, assignment)