| Template | Comments | |
| If T is a (possibly cv-qualified) signed integer
 type ([basic.fundamental]) then the member typedef
 type denotes T; otherwise,
 if T is a (possibly cv-qualified) unsigned integer
 type then type denotes the corresponding
 signed integer type, with the same cv-qualifiers as T;
 otherwise, type denotes the signed integer type with smallest
 rank ([conv.rank]) for which
 sizeof(T) == sizeof(type), with the same
 cv-qualifiers as T. | ||
| If T is a (possibly cv-qualified) unsigned integer
 type ([basic.fundamental]) then the member typedef
 type denotes T; otherwise,
 if T is a (possibly cv-qualified) signed integer
 type then type denotes the corresponding
 unsigned integer type, with the same cv-qualifiers as T;
 otherwise, type denotes the unsigned integer type with smallest
 rank ([conv.rank]) for which
 sizeof(T) == sizeof(type), with the same
 cv-qualifiers as T. |