Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::detail::make_unsigned_imp< T > Struct Template Reference

#include <make_unsigned.hpp>

Public Types

typedef remove_cv< T >::type t_no_cv
 
typedef mpl::if_c
< (::boost::type_traits::ice_and
< ::boost::is_unsigned< T >
::value,::boost::is_integral
< T >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
char >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
wchar_t >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
bool >::value >::value >
::value), T, typename
mpl::if_c
< (::boost::type_traits::ice_and
< ::boost::is_integral< T >
::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
char >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
wchar_t >::value >::value,::boost::type_traits::ice_not
< ::boost::is_same< t_no_cv,
bool >::value >::value >
::value), typename mpl::if_
< is_same< t_no_cv, signed
char >, unsigned char,
typename mpl::if_< is_same
< t_no_cv, short >, unsigned
short, typename mpl::if_
< is_same< t_no_cv, int >
, unsigned int, typename
mpl::if_< is_same< t_no_cv,
long >, unsigned long,
unsigned long >::type >::type >
::type >::type, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
char), unsigned char, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
short), unsigned short,
typename mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
int), unsigned int, typename
mpl::if_c< sizeof(t_no_cv)==sizeof(unsigned
long), unsigned long, unsigned
long >::type >::type >::type >
::type >::type >::type 
base_integer_type
 
typedef mpl::if_< is_const< T >
, typename add_const
< base_integer_type >::type,
base_integer_type >::type 
const_base_integer_type
 
typedef mpl::if_< is_volatile
< T >, typename add_volatile
< const_base_integer_type >
::type,
const_base_integer_type >
::type 
type
 

Public Member Functions

 BOOST_STATIC_ASSERT ((::boost::type_traits::ice_or< ::boost::is_integral< T >::value,::boost::is_enum< T >::value >::value))
 
 BOOST_STATIC_ASSERT ((::boost::type_traits::ice_not< ::boost::is_same< typename remove_cv< T >::type, bool >::value >::value))
 

Member Typedef Documentation

template<class T >
typedef mpl::if_c< (::boost::type_traits::ice_and< ::boost::is_unsigned<T>::value, ::boost::is_integral<T>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value), T, typename mpl::if_c< (::boost::type_traits::ice_and< ::boost::is_integral<T>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value, ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>::value), typename mpl::if_< is_same<t_no_cv, signed char>, unsigned char, typename mpl::if_< is_same<t_no_cv, short>, unsigned short, typename mpl::if_< is_same<t_no_cv, int>, unsigned int, typename mpl::if_< is_same<t_no_cv, long>, unsigned long, unsigned long >::type >::type >::type >::type, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned char), unsigned char, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned short), unsigned short, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned int), unsigned int, typename mpl::if_c< sizeof(t_no_cv) == sizeof(unsigned long), unsigned long, unsigned long >::type >::type >::type >::type >::type >::type boost::detail::make_unsigned_imp< T >::base_integer_type
template<class T >
typedef mpl::if_< is_const<T>, typename add_const<base_integer_type>::type, base_integer_type >::type boost::detail::make_unsigned_imp< T >::const_base_integer_type
template<class T >
typedef remove_cv<T>::type boost::detail::make_unsigned_imp< T >::t_no_cv
template<class T >
typedef mpl::if_< is_volatile<T>, typename add_volatile<const_base_integer_type>::type, const_base_integer_type >::type boost::detail::make_unsigned_imp< T >::type

Member Function Documentation

template<class T >
boost::detail::make_unsigned_imp< T >::BOOST_STATIC_ASSERT ( (::boost::type_traits::ice_or< ::boost::is_integral< T >::value,::boost::is_enum< T >::value >::value)  )
template<class T >
boost::detail::make_unsigned_imp< T >::BOOST_STATIC_ASSERT ( (::boost::type_traits::ice_not< ::boost::is_same< typename remove_cv< T >::type, bool >::value >::value)  )

The documentation for this struct was generated from the following file: