在里面 C ++标准库 价值 std::numeric_limits<T>::max() 被指定为函数。特定类型的进一步属性被作为常数(例如std::numeric_limits<T>::is_signed)。所有类型的常数 T 作为函数给出,而所有其他常数均以恒定值为单位。

背后的理由是什么?

有帮助吗?

解决方案

为了扩大尼尔的评论, std::numeric_limit<T> 可用于任何数字类型,包括浮点数,如果您挖掘 comp.lang.c ++ 线程,您会发现,可能无法定义浮点值的静态变量。

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

它会随着C ++ 0x的变化而改变,因此有希望。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top