std::numeric_limits<T>::is_integer
static const bool is_integer; | (until C++11) | |
static constexpr bool is_integer; | (since C++11) |
The value of std::numeric_limits<T>::is_integer is true for all integer arithmetic types T and false otherwise. This constant is meaningful for all specializations.
Standard specializations
T | value of std::numeric_limits<T>::is_integer |
|---|---|
| /* non-specialized */ |
false |
| bool |
true |
| char |
true |
| signedchar |
true |
| unsignedchar |
true |
| wchar_t |
true |
| char8_t (since C++20) |
true |
| char16_t (since C++11) |
true |
| char32_t (since C++11) |
true |
| short |
true |
| unsignedshort |
true |
| int |
true |
| unsignedint |
true |
| long |
true |
| unsignedlong |
true |
| longlong (since C++11) |
true |
| unsignedlonglong (since C++11) |
true |
| float |
false |
| double |
false |
| longdouble |
false |
Example
#include <cstddef>
#include <cstdint>
#include <limits>
static_assert
(
std::numeric_limits<bool>::is_integer
&& std::numeric_limits<std::size_t>::is_integer
&& std::numeric_limits<std::int32_t>::is_integer
&& std::numeric_limits<std::int64_t>::is_integer
&& std::numeric_limits<decltype(42)>::is_integer
&& !std::numeric_limits<int*>::is_integer
&& !std::numeric_limits<float>::is_integer
&& !std::numeric_limits<double>::is_integer
&& !std::numeric_limits<long double>::is_integer
&& !std::numeric_limits<decltype([](){})>::is_integer // P0315R4
);
int main() {}
See also
|
(C++20) | specifies that a type is an integral type (concept) |
|
(C++11) | checks if a type is an integral type (class template) |
|
(C++26) | checks if reflected type is an integral type (function) |
|
[static] | identifies signed types (public static member constant) |
|
[static] | identifies exact types (public static member constant) |
|
[static] | identifies types that represent a finite set of values (public static member constant) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/types/numeric_limits/is_integer