Boost C++ 库

...世界上最受尊敬和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码标准

PrevUpHomeNext

第 41 章。Boost.Units 1.1.0

Matthias C. Schabel

Steven Watanabe

根据 Boost 软件许可协议 1.0 版分发。(请参阅随附文件 LICENSE_1_0.txt 或访问 https://boost.ac.cn/LICENSE_1_0.txt 复制许可协议)

目录

简介
快速入门
量纲分析
单位
基本单位
比例基本单位
比例单位
异构运算符
转换
量的构造和转换
示例
量纲示例
单位示例
量示例
使用 SI 单位的综合示例
转换示例
用户定义的类型
复杂示例
性能示例
雷达波束高度
异构单位示例
绝对和相对温度示例
运行时转换因子示例
具有非基本量纲的单位
复合单位的输出
自动缩放单位
转换因子
运行时单位
与 Boost.Lambda 的互操作性
实用工具
元编程类
元编程谓词
参考
单位参考
量纲参考
SI 单位制参考
CGS 单位制参考
三角学和角度单位制参考
温度单位制参考
信息单位制参考
抽象单位制参考
按类别划分的基本单位
基本单位的字母列表
安装
FAQ
如何区分物理性质不同但单位相同的量(例如能量和力矩)?
角度被视为单位
为什么存在同构系统?异构系统不是足够了吗?
为什么我不能直接从值类型构造量?
为什么默认情况下转换是显式的?
致谢
招聘
版本信息
发行说明
TODO

Boost.Units 库是一个 C++ 实现,以通用且可扩展的方式进行量纲分析,将其视为通用的编译时元编程问题。通过适当的编译器优化,不会引入运行时执行成本,从而方便在对性能要求严格的代码中使用此库来提供量纲检查。它为任意单位系统模型和任意值类型的单位和量(定义为单位和关联值)提供支持,并为单位转换提供精细的通用工具。提供了完整的 SI 和 CGS 单位制,以及用于测量角度(以度、弧度、百分度和转为单位)的系统,以及用于测量温度(以开尔文、摄氏度和华氏度为单位)的系统。该库的架构在设计时考虑了灵活性和可扩展性;示例中演示了添加新单位和单位转换的简易性。

为了实现复杂的编译时量纲分析计算而无需运行时开销,Boost.Units 严重依赖于 Boost 元编程库 (MPL) 和模板元编程技术,因此对编译器对 ISO 标准的兼容性要求相当高。目前,它已在以下编译器/平台上成功编译和测试

  1. Mac OSX 10.4 上的 g++ 4.0.1
  2. Mac OSX 10.4 上的 Intel CC 9.1、10.0 和 10.1
  3. Windows XP 上的 g++ 3.4.4、4.2.3 和 4.3.0
  4. Windows XP 上的 Microsoft Visual C++ 7.1、8.0 和 9.0
  5. Windows XP 上的 Comeau 4.3.10.1 beta2
  6. Windows XP 上的 Metrowerks CodeWarrior 9.2。
  7. Solaris 和 Linux 上的 Sun CC 5.9

已知以下编译器/平台 工作

  1. g++ 3.3.x
  2. Windows XP 上的 Microsoft Visual C++ 6.0
  3. Windows XP 上的 Microsoft Visual C++ 7.0
  4. Windows XP 上的 Metrowerks CodeWarrior 8.0。
  5. 所有版本的 Borland。

PrevUpHomeNext