18 Concepts library [concepts]

18.4 Language-related concepts [concepts.lang]

18.4.7 Arithmetic concepts [concepts.arithmetic]

template<class T> concept integral = is_integral_v<T>; template<class T> concept signed_­integral = integral<T> && is_signed_v<T>; template<class T> concept unsigned_­integral = integral<T> && !signed_integral<T>; template<class T> concept floating_­point = is_floating_point_v<T>;
[Note
:
signed_­integral can be modeled even by types that are not signed integer types ([basic.fundamental]); for example, char.
— end note
]
[Note
:
unsigned_­integral can be modeled even by types that are not unsigned integer types ([basic.fundamental]); for example, bool.
— end note
]