Boost C++ 库

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

PrevUpHomeNext

第 43 章. 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 系统参考
三角函数和角度系统参考
温度系统参考
信息系统参考
抽象系统参考
按类别划分的基本单位
基本单位的字母顺序列表
安装
常见问题解答
如何区分物理上不同但单位相同的量(例如能量和扭矩)?
角度被视为单位
为什么存在同构系统?异构系统不够吗?
为什么我不能直接从值类型构造一个量?
为什么默认情况下转换是显式的?
致谢
寻求帮助
版本信息
发行说明
待办事项

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