Limits and other properties of numeric types
Sometimes, it is necessary to know and use the minimum and maximum values that can be represented with a numeric type, such as
double. Many developers use standard C macros for this, such as
DBL_MAX. C++ provides a class template called
numeric_limits with specializations for every numeric type that enables you to query the minimum and maximum value of a type. However,
numeric_limits is not limited to that functionality, and offers additional constants for type property querying, such as whether a type is signed or not, how many bits it needs for representing its values, whether it can represent infinity for floating-point types, and many others. Prior to C++11, the use of
numeric_limits<T> was limited because it could not be used in places where constants were needed (examples include the size of arrays and switch cases). Due to that, developers preferred to...