Boost C++ Libraries 首页 人员 常见问题 更多

Next

第 1 章. Boost.NumericConversion

Fernando Luis Cacciola Carballal

根据 Boost 软件许可证版本 1.0 分发。(请参阅附带文件 LICENSE_1_0.txt 或复制自 https://boost.ac.cn/LICENSE_1_0.txt

内容目录

概述
定义
简介
类型和值
C++ 算术类型
数值类型
范围和精度
精确、正确舍入和超出范围的表示
标准(数值)转换
子范围转换方向、子类型和超类型
converter<> 函数对象
提要
模板参数
成员函数
范围检查逻辑
示例
类型要求和用户定义类型支持
类型要求
UDT 的特殊语义
特殊策略
使用 numeric_cast 的 UDT
bounds<> traits 类
简介
traits 类 bounds<N>
示例
conversion_traits<> traits 类
类型
示例
数值转换策略类
枚举 range_check_result
策略 OverflowHandler
策略 Float2IntRounder
策略 RawConverter
策略 UserRangeChecker
改进的 numeric_cast<>
简介
numeric_cast
numeric_cast_traits
示例
历史和致谢
参考文献

Boost 数值转换库是一组用于描述和执行不同数值类型之间值转换的工具。

该库包括 std::numeric_limits<> 的一个子集的特殊替代方案,即 bounds<> traits 类,它提供了一种一致的方法来获取边界值,用于范围的数值类型。

它还包括一组traits 类,这些类描述了从源到目标数值类型的转换的编译时属性。可以使用算术用户定义的数值类型

提供了一个基于策略的converter 对象,该对象使用 conversion_traits 来选择优化的实现。这种实现使用适合源/目标组合的最佳范围检查代码。

  • 可以通过OverflowHandler 策略自定义转换器的超出范围行为。
  • 对于浮点数到整数的转换,可以通过Float2IntRounder 策略选择舍入模式。
  • 可以通过RawConverter 策略传递自定义底层转换例程(例如,用于 UDT)。
  • 可以通过UserRangeChecker 策略覆盖优化的自动范围检查逻辑。


Next