std:: make_unsigned
| Type traits | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compile-time rational arithmetic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compile-time integer sequences | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(C++14)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<type_traits>
|
||
|
template
<
class
T
>
struct make_unsigned ; |
(depuis C++11) | |
Si
T
est un type intégral (sauf
bool
) ou un type énumération, fournit le typedef membre
type
qui est le type entier non signé correspondant à
T
, avec les mêmes qualificateurs cv.
Si
T
est signé ou non signé
char
,
short
,
int
,
long
,
long
long
; le type non signé correspondant à
T
dans cette liste est fourni.
Si
T
est un type énumération ou
char
,
wchar_t
,
char8_t
(depuis C++20)
,
char16_t
,
char32_t
; le type entier non signé ayant le plus petit
rang
avec la même
sizeof
que
T
est fourni.
|
Sinon, le comportement est indéfini. |
(until C++20) |
|
Sinon, le programme est mal formé. |
(since C++20) |
Si le programme ajoute des spécialisations pour
std::make_unsigned
, le comportement est indéfini.
Table des matières |
Types membres
| Nom | Définition |
type
|
le type entier non signé correspondant à
T
|
Types auxiliaires
|
template
<
class
T
>
using make_unsigned_t = typename make_unsigned < T > :: type ; |
(depuis C++14) | |
Exemple
#include <type_traits> int main() { using uchar_type = std::make_unsigned_t<char>; using uint_type = std::make_unsigned_t<int>; using ulong_type = std::make_unsigned_t<volatile long>; static_assert( std::is_same_v<uchar_type, unsigned char> and std::is_same_v<uint_type, unsigned int> and std::is_same_v<ulong_type, volatile unsigned long> ); }
Voir aussi
|
(C++11)
|
vérifie si un type est un type arithmétique signé
(modèle de classe) |
|
(C++11)
|
vérifie si un type est un type arithmétique non signé
(modèle de classe) |
|
(C++11)
|
obtient le type signé correspondant pour le type intégral donné
(modèle de classe) |