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 1: 
signed_integral can be modeled even by types that are not signed integer types ([basic.fundamental]); for example, char.
— end note]
[Note 2: 
unsigned_integral can be modeled even by types that are not unsigned integer types ([basic.fundamental]); for example, bool.
— end note]