23 General utilities library [utilities]

23.15 Metaprogramming and type traits [meta]

23.15.7 Transformations between types [meta.trans]

23.15.7.3 Sign modifications [meta.trans.sign]

Таблица 47 - Модификации знаков
ШаблонКомментарии
template <class T>
struct make_­signed;
Если T именует a (возможно, cv-квалифицированным), signed integer type тогда typedef члена type называет тип T; в противном случае, если T именуется (возможно, cv-квалифицированный) беззнаковый целочисленный тип, тогда type именуется соответствующий знаковый целочисленный тип с теми же cv-квалификаторами, что и T; в противном случае, type именует знаковое целое типа с , smallest rank для которых sizeof(T) == sizeof(type), с тем же CV-определителями как T.
Requires: T должен быть (возможно, cv-квалифицированным) целочисленным типом или перечислением, но не bool типом.
template <class T>
struct make_­unsigned;
Если T именует a (возможно, cv-квалифицированным), unsigned integer type тогда typedef члена type называет тип T; в противном случае, если T именуется (возможно, cv-квалифицированный) целочисленный тип со знаком, тогда type именуется соответствующий беззнаковый целочисленный тип с теми же cv-квалификаторами, что и T; в противном случае, type называют целое число без знака типа с , smallest rank для которого sizeof(T) == sizeof(type), с тем же CV-классификаторами как T.
Requires: T должен быть (возможно, cv-квалифицированным) целочисленным типом или перечислением, но не bool типом.