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