为什么该标准同时提供is_integer和is_exact
Why does the standard provide both is_integer and is_exact?
std::numeric_limits
提供了 2 个互斥常量:
-
is_integer
: "true
对于所有整数算术类型T
"> -
is_exact
: "true
适用于所有使用精确表示的算术类型T
">
是否存在非精确积分类型的可能性?这里试图允许什么?
在我所有的模板中,我知道我是否正在处理精确的数字,我使用了is_integer
,我现在也需要为is_exact
添加支票吗?
从is_exact
cpp首选项页面:
<小时 />笔记
虽然所有基本类型 T 对于其中
std::numeric_limits<T>::is_exact==true
是整数类型,一个库可以定义不是整数的确切类型,例如有理数表示分数的算术类型。
而且,正如@Holt所提到的,该标准也描述了它:
21.3.4.1 numeric_limits成员 [数字限制成员]
静态 constexpr 布尔is_exact;
如果类型使用精确表示形式,则为 true。所有整数类型都是精确的,但并非所有确切类型都是整数。例如,有理数和固定指数表示是精确的,但不是整数。
相关文章:
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- Why is UINT32_MAX + 1 = 0?
- C++错误:"error: int aaa::bbb is protected within this context"
- 创建具有 new in 函数和"this is nullptr"异常的对象
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- Is !NaN not a NaN?
- Directx 11 - CompileFromFile() is not compiling
- Centos7 g++ "to_string is not in a member of std"
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- Where is std::hardware_destructive_interference_size?
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- What is unordered_set in C++
- 你如何理解"std: :forward is just syntactic sugar"?这是真的吗?
- C++ "error: use of overloaded operator '*' is ambiguous"似乎只有一场比赛
- C++ is calculating wrong
- Is it good to use SDL_PIXELFORMAT_UNKNOWN?
- 使用多个文件时"array bound is not an integer constant before ']' token"
- 使用枚举类值为数组编制索引时出现"Array subscript is not an integer"错误
- 获取错误"array bound is not an integer constant before ']' token"
- 在运行时创建结构时"array bound is not an integer constant"