template <class T>
struct make_unsigned
{
typedef see-below type;
};
Тип:Если T является неподписанным целым типом, то тот же тип, что и T, если T является подписанным целым типом, то соответствующий неподписанный тип. В противном случае, если T является перечисленным или типом символа (char или wchar_t), то неподписанным целым типом с той же шириной, что и T.
Если T имеет какие-либо cv-квалификаторы, то они также присутствуют на типе результата.
Требуется:Т должен быть целочисленным или перечисленным типом и не должен быть типом болта.
С++ Стандартная ссылка:3.9.1.
Совместимость компиляторов:Все текущие компиляторы поддерживаются этой чертой.
Заголовок:<#include
<boost/type_traits/make_unsigned.hpp>>или<#include<boost/type_traits.hpp>>
Table 1.24. Examples
|
выражение
|
Тип результата
|
<make_unsigned<int>::type> |
<unsignedint> |
<make_unsigned<unsignedint
const>::type> |
<unsignedint
const> |
<make_unsigned<constunsigned
longlong>::type> |
<constunsigned
longlong> |
<make_unsigned<my_enum>::type> |
Неподписанный целочисленный тип с той же шириной, что и число. |
<make_unsigned<wchar_t>::type> |
Неподписанный целочисленный тип с той же шириной, что и wchar_t. |