Integral types
Declaration
The Integral_type
concept is declared in <origin/generic.hpp>
.
template<typename T>
concept bool Integral_type()
Documentation
The following types are categorized as integral types: bool
, char
, char16_t
, char32_t
, wchar_t
, short
, int
, long
, long long
, any implementation-defined extended integer types, all signed and unsigned variants of these types, and all const
or volatile
qualified variants of these types.
Example
template<typename T>
void f(T x)
{
return 0;
}
template<origin::Integral_type T>
int f(T x)
{
return 1;
}
int main()
{
int x = 0;
assert(f(x) == 1);
assert(f(&x) == 0); // A pointer is not an integral type.
}