1 #ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED 2 #define BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED 17 #if defined(BOOST_NO_CXX11_DECLTYPE) 21 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 30 #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 36 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 40 namespace type_traits_detail
47 template<
class T1,
class T2,
class...
T>
54 template<
class T1,
class T2,
class... T>
59 #endif // !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 66 class T7 =
void,
class T8 =
void,
class T9 =
void 72 #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 82 namespace type_traits_detail
87 #if !defined(BOOST_NO_CXX11_DECLTYPE) 89 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 91 #if !defined(BOOST_MSVC) || BOOST_MSVC > 1800 103 template<
class T1,
class T2>
using builtin_common_type = decltype( boost::declval<bool>()? boost::declval<T1>(): boost::declval<T2>() );
105 template<
class T1,
class T2>
struct common_type_impl_2:
mp_defer<builtin_common_type, T1, T2>
115 #endif // !defined(BOOST_MSVC) || BOOST_MSVC > 1800 119 template<
class T1,
class T2>
struct common_type_impl:
boost::decay<decltype( boost::declval<bool>()? boost::declval<T1>(): boost::declval<T2>() )>
123 #endif // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 125 #endif // #if !defined(BOOST_NO_CXX11_DECLTYPE) 145 #endif // #ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED typename boost::decay< decltype(boost::declval< bool >()? boost::declval< T1 >():boost::declval< T2 >())>::type builtin_common_type
typename boost::conditional< mp_valid< F, T... >::value, mp_defer_impl< F, T... >, mp_empty >::type mp_defer
boost::detail::decay_imp< Ty, boost::is_array< Ty >::value, boost::is_function< Ty >::value >::type type
typedef void(APIENTRY *GLDEBUGPROC)(GLenum source
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
common_type_t< common_type_t< T1, T2 >, T... > common_type_fold
typename common_type< T... >::type common_type_t
add_rvalue_reference< T >::type declval() BOOST_NOEXCEPT