boost.units中单位的转换因子

conversion factor for units in boost.units

本文关键字:转换 单位 units boost      更新时间:2023-10-16

我刚刚开始使用Boost-units,我试图了解我应该编写的代码以获取单位之间的转换因子。在运行时单元示例之后,我设法获得了base_units所需的东西。

作为一个例子,我可以轻松地将转换因子从英寸到米的转换因子如下:

conversion_factor(imperial::inch_base_unit::unit_type(), si::meter_base_unit::unit_type())

这最终使我可以根据需要定义尽可能多的缩放单元,并获得所有所需的转换因子。

例如,在速度的情况下,在相关标头中被声明为"米_per_second"单元,我无法弄清楚如何检索转换因子以将其转换为kmh或mph。我想我需要定义自己的MPH单元,这导致需要定义(或检索)里程和小时的定义,并将它们全部放在一起。

我应该如何实现所需的结果?

我设法在boost用户邮件列表存档(此处)

中找到了一个相关示例
#include <boost/units/base_units/us/mile.hpp>
#include <boost/units/base_units/metric/hour.hpp>
typedef boost::units::us::mile_base_unit::unit_type mile_unit;
typedef boost::units::metric::hour_base_unit::unit_type hour_unit;
typedef boost::units::divide_typeof_helper<mile_unit, hour_unit>::type miles_per_hour;

正确声明了单元后,可以调用 Conversion_Factor 函数以获取我需要的东西。