В настоящее время я использую надстройки :: единицы измерения для представления крутящего момента в единицах СИ, однако мне дан крутящий момент в фунтах футов.Таким образом, я пытаюсь создать единицу крутящего момента 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);