boost.units 单位的换算系数
conversion factor for units in boost.units
我刚开始使用 boost-units,我想了解我应该编写什么代码来获取单位之间的转换因子。在 Runtime Units Example 之后,我设法获得了 base_units 所需的东西。
例如,对于长度,我可以很容易地得到从英寸到米的换算系数,如下所示:
conversion_factor(imperial::inch_base_unit::unit_type(), si::meter_base_unit::unit_type())
这最终让我可以定义任意数量的缩放单位,并获得所有需要的转换因子。
例如,在速度的情况下,在相关 header 中声明为 'meter_per_second' 单位,我无法弄清楚如何检索转换因子以将其转换为 kmh,或者英里每小时我想我需要定义自己的 mph 单位,这导致需要定义(或检索)英里和小时的定义,并将它们放在一起。
我应该如何达到预期的结果?
我设法在 Boost-users 邮件列表存档中找到了相关示例 (here)
#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函数来得到我需要的。
我刚开始使用 boost-units,我想了解我应该编写什么代码来获取单位之间的转换因子。在 Runtime Units Example 之后,我设法获得了 base_units 所需的东西。
例如,对于长度,我可以很容易地得到从英寸到米的换算系数,如下所示:
conversion_factor(imperial::inch_base_unit::unit_type(), si::meter_base_unit::unit_type())
这最终让我可以定义任意数量的缩放单位,并获得所有需要的转换因子。
例如,在速度的情况下,在相关 header 中声明为 'meter_per_second' 单位,我无法弄清楚如何检索转换因子以将其转换为 kmh,或者英里每小时我想我需要定义自己的 mph 单位,这导致需要定义(或检索)英里和小时的定义,并将它们放在一起。
我应该如何达到预期的结果?
我设法在 Boost-users 邮件列表存档中找到了相关示例 (here)
#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函数来得到我需要的。