123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- [/
- 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;
- };
-
- template <class T> using make_unsigned_t = typename make_unsigned<T>::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 <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]
|