我目前使用 boost::units 来表示以 si 为单位的扭矩,但是我得到了以磅英尺为单位的扭矩。因此,我试图创建一个 pound_foot 单位的扭矩和一个转换来支持这一点。我懒惰的尝试是简单地定义:
BOOST_STATIC_CONST(boost::si::torque, pound_feet = 1.3558179483314 * si::newton_meters);
然后做:
boost::si::torque torque = some_value * pound_feet;
但这感觉并不令人满意。我的第二次尝试是尝试定义一个名为 pound_foot 的新基本单位(见下文)。但是当我尝试以与上述类似的方式使用它时(对 si 单元进行强制转换),我得到一个充满错误的页面。关于正确方法的任何建议?
namespace us {
struct pound_foot_base_unit : base_unit<pound_foot_base_unit, torque_dimension> { };
typedef units::make_system<
pound_foot_base_unit>::type us_system;
typedef unit<torque_dimension, us_system> torque;
BOOST_UNITS_STATIC_CONSTANT(pound_foot, torque);
BOOST_UNITS_STATIC_CONSTANT(pound_feet, torque);
}
BOOST_UNITS_DEFINE_CONVERSION_FACTOR(us::torque,
boost::units::si::torque,
double, 1.3558179483314);