[/ 
  Copyright 2007 John Maddock.
  Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt).
]

[section:make_unsigned make_unsigned]

   template <class T>
   struct make_unsigned
   {
      typedef __below type;
   };
  
__type If T is a unsigned integer type then the same type as T, if T is an 
signed integer type then the corresponding unsigned type.  
Otherwise if T is an enumerated or
character type (char or wchar_t) then an unsigned integer type with the same
width as T.

If T has any cv-qualifiers then these are also present on the result type.

[*Requires:]  T must be an integer or enumerated type, and must not be the type
bool.

__std_ref 3.9.1.

__header ` #include <boost/type_traits/make_unsigned.hpp>` or ` #include <boost/type_traits.hpp>`

[table Examples

[ [Expression] [Result Type]]

[[`make_unsigned<int>::type`][`unsigned int`]]

[[`make_unsigned<unsigned int const>::type`] [`unsigned int const`]]

[[`make_unsigned<const unsigned long long>::type`] [`const unsigned long long`]]

[[`make_unsigned<my_enum>::type`] [An unsigned integer type with the same width as the enum.]]
[[`make_unsigned<wchar_t>::type`] [An unsigned integer type with the same width as wchar_t.]]

]

[endsect]

