Jon*_*Mee 6 c++ floating-point integer fixed-point numeric-limits
std::numeric_limits 提供2个互斥的常量:
is_integer :" true对于所有整数算术类型T"
is_exact:" true对于T使用精确表示的所有算术类型"
是否存在非精确积分类型的可能性?在这里试图允许什么?
在我所有的模板中,我知道我是否正在处理精确的数字,我用过is_integer,我现在还需要添加支票is_exact吗?
Edg*_*jān 13
从cppreference页面:is_exact
笔记
虽然所有基本类型T
std::numeric_limits<T>::is_exact==true都是整数类型,但库可以定义非整数的精确类型,例如表示分数的有理算术类型.
而且,正如@Holt所提到的,该标准也描述了它:
21.3.4.1 numeric_limits成员[numeric.limits.members]
static constexpr bool is_exact;
如果类型使用精确表示,则为true.所有整数类型都是精确的,但并非所有精确类型都是整数.例如,有理和固定指数表示是精确但不是整数.