在 C ++标准库中,将值std::numeric_limits<T>::max()
指定为函数。特定类型的其他属性以常量形式给出(如std::numeric_limits<T>::is_signed
)。类型T
的所有常量都是作为函数给出的,而所有其他常量都是常量值。
背后的理由是什么?
答案 0 :(得分:17)
为了扩展Neil的评论,std::numeric_limit<T>
适用于任何数字类型,包括浮点数,如果你仔细阅读comp.lang.c++帖子,你会看到它可能不可能定义浮点值的静态变量。
因此,为了保持一致性,他们决定将积分和浮点放在方法之后。
它会随着C ++ 0x而改变,所以有希望。