0

我正在寻找一种方法来对不同的测量单位进行更好的类型检查。boost::units 文档以“Boost.Units 库是以通用且可扩展的方式进行维度分析的 C++ 实现......”开头。文档继续说,“......没有引入运行时执行成本......”。

我对在维度分析之外使用升压单元很感兴趣。例如,一个函数参数需要boost::units::degrees而不是简单的double.

using AngleDegree = boost::units::quantity<boost::units::unit<boost::units::plane_angle_dimension, boost::units::degree::system>>;
using AngleRadian = boost::units::quantity<boost::units::unit<boost::units::plane_angle_dimension, boost::units::si::system>>;
void foo(AngleDegree angle_deg) {...}
void bar(AngleRadian angle_rad) {...}

我不应该这样做有什么根本原因吗?我在文档中没有找到任何说明我应该或不应该以这种方式使用 boost::units 的内容。

4

0 回答 0