Apache C++ Standard Library User's Guide

## 21.2 Fundamental Datatypes

The C++ Standard Library describes a specific type by providing a specialization of the`numeric_limits` template for the type. Static member functions and static constant data members then provide information specific to the type. The C++ Standard Library includes descriptions of the fundamental datatypes given in Table 21.

#### Table 21: Fundamental datatypes of the C++ Standard Library

`bool` | `char` | `int` | `float`
| `signed char` | `short` | `double`
`unsigned char` | `long` | `long double`
| `wchar_t` |
`unsigned short`
`unsigned int`
`unsigned long`

Certain implementations may also provide information on other datatypes. Whether or not an implementation is described can be discovered using the static data member `is_specialized`. For example, the following is legal, and will indicate that the string datatype is not described by this mechanism.

    std::cout << "are strings described " <<
       std::numeric_limits<string>::is_specialized << std::endl;

For datatypes that do not have a specialization, the values yielded by the functions and data members in `numeric_limits` are generally zero or `false`.