1

我刚开始使用 boost-units,我试图了解我应该编写什么代码来获得单位之间的转换因子。按照运行时单元示例,我设法获得了 base_units 所需的内容。

例如,对于长度,我可以轻松地获得从英寸到米的转换因子,如下所示:

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

这最终允许我定义任意数量的缩放单位,并获得所有需要的转换因子。

例如,在速度的情况下,在相关标题中声明为“meter_per_second”单位,我无法弄清楚如何检索转换因子以将其转换为 kmh 或 mph。我想我需要定义自己的英里/小时单位,这导致需要定义(或检索)英里和小时的定义,并将它们放在一起。

我应该如何达到预期的结果?

4

1 回答 1

1

我设法在 Boost-users 邮件列表存档中找到了一个相关示例(此处

#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函数来获得我需要的东西。

于 2017-09-21T06:43:11.353 回答