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.
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.