[/ 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 struct make_unsigned { typedef __below type; }; template using make_unsigned_t = typename make_unsigned::type; // C++11 and above __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. [all_compilers] __header ` #include ` or ` #include ` [table Examples [ [Expression] [Result Type]] [[`make_unsigned::type`][`unsigned int`]] [[`make_unsigned::type`] [`unsigned int const`]] [[`make_unsigned::type`] [`const unsigned long long`]] [[`make_unsigned::type`] [An unsigned integer type with the same width as the enum.]] [[`make_unsigned::type`] [An unsigned integer type with the same width as wchar_t.]] ] [endsect]