In the standard library of C++ the value std::numeric_limits<T>::max()
is specified as a function. Further properties of a specific type are given as constants (like std::numeric_limits<T>::is_signed
). All constants that are of type T
are given as functions, whereas all other constants are given as, well, constant values.
Whats the rationale behind that?