为什么std :: numeric_limits <T> :: max()是一个函数?

abl*_*eul 27 c++ const numeric-limits

C++标准库中,该值std::numeric_limits<T>::max()被指定为函数.特定类型的其他属性以常量(如std::numeric_limits<T>::is_signed)给出.所有类型的常量都是T作为函数给出的,而所有其他常量都是以常量值的形式给出的.

这背后的理由是什么?

Mat*_* M. 17

要扩展Neil的注释,std::numeric_limit<T>可以使用任何数字类型,包括浮点数,如果你仔细阅读comp.lang.c ++线程,你会看到提到可能无法定义浮点的静态变量值.

因此,为了保持一致性,他们决定将积分和浮点放在方法之后.

它会随着C++ 0x而改变,所以有希望.