std::numeric_limits<double>::quiet_NaN() 跨平台安全吗?
Is std::numeric_limits<double>::quiet_NaN() cross platform safe?
在我为 armhf 板创建的 c++ 应用程序中,我获取 GPS 经度和纬度十进制值并将其存储到双精度变量中。目前,我将这些变量初始化为无效值(255)。
但是我遇到了通过使用std::numeric_limits
可以将双变量分配给std::numeric_limits<double>::quiet_NaN()
.
关于 nan 跨平台问题,我阅读了非常有用的链接 我应该对包含无效值的数据集使用浮点数的 NaN 还是浮点 + bool?
另一方面std::numeric_limits
是一个纯粹的 c++11 标准,但我想知道有人在不同平台中移植这种代码时是否遇到任何问题。
例如,如果我将代码从硬浮动移动到软浮动 甚至是 amd64 平台,上述初始化是否会导致应该用操作系统预处理器指令处理的任何问题?
来自 cpp首选项:"std::numeric_limits::has_quiet_NaN 的值对于能够表示特殊值 "Quiet Not-A-Number" 的所有类型 T 都是正确的。此常量对所有浮点类型都有意义,如果 std::numeric_limits::is_iec559 == true,则保证为真。
您需要检查软浮点库或 FPU 是否符合 IEEE 754 (IEC 559),并且还需要使用正确的编译器标志来启用它们的使用,请参阅:用于浮点的 gcc 标志。
相关文章:
- 通过网络、跨平台传递std::变体是否安全
- g++的分段错误(在NaN上使用to_string两次时)
- 输出是NaN,如何
- 如何跨平台将二进制资源构建到程序中?
- 为什么我在输出端得到 nan?
- 提升反序列化对象具有 nan 或 -nan 值
- Is !NaN not a NaN?
- NaN 上的宇宙飞船操作员
- C++ STL 排序会检查 NaN 吗?
- C++ 每次运行程序时我都会"nan"输出的问题
- 以跨平台的方式将图像源路径从C++发送到 QML
- 跨平台 GPU 计算
- 复制 -nan 表示浮点数,AVX __m256 复制后显示 0
- 如何使用 Node-addon-API 实现 node-nan 回调
- 在哪里存储跨平台C++应用存储?
- 如何将外部依赖引入跨平台CMake项目?
- 将 VS Code 用于跨平台可缩放C++项目
- 为什么我的双变量通过添加 c++ 显示 nan?
- nan() 函数的参数
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码