1[/
2  Copyright 2007 John Maddock.
3  Distributed under the Boost Software License, Version 1.0.
4  (See accompanying file LICENSE_1_0.txt or copy at
5  http://www.boost.org/LICENSE_1_0.txt).
6]
7
8[section:make_unsigned make_unsigned]
9
10   template <class T>
11   struct make_unsigned
12   {
13      typedef __below type;
14   };
15
16__type If T is a unsigned integer type then the same type as T, if T is an
17signed integer type then the corresponding unsigned type.
18Otherwise if T is an enumerated or
19character type (char or wchar_t) then an unsigned integer type with the same
20width as T.
21
22If T has any cv-qualifiers then these are also present on the result type.
23
24[*Requires:]  T must be an integer or enumerated type, and must not be the type
25bool.
26
27__std_ref 3.9.1.
28
29__header ` #include <boost/type_traits/make_unsigned.hpp>` or ` #include <boost/type_traits.hpp>`
30
31[table Examples
32
33[ [Expression] [Result Type]]
34
35[[`make_unsigned<int>::type`][`unsigned int`]]
36
37[[`make_unsigned<unsigned int const>::type`] [`unsigned int const`]]
38
39[[`make_unsigned<const unsigned long long>::type`] [`const unsigned long long`]]
40
41[[`make_unsigned<my_enum>::type`] [An unsigned integer type with the same width as the enum.]]
42[[`make_unsigned<wchar_t>::type`] [An unsigned integer type with the same width as wchar_t.]]
43
44]
45
46[endsect]
47
48