Actualmente estoy usando boost :: units para representar el torque en unidades si, sin embargo, me da el par en libras. Estoy intentando crear una unidad de torque pound_foot y una conversión para apoyar esto. Mi intento perezoso era simplemente definir:Cómo agregar su propia unidad base y conversiones usando boost :: units
BOOST_STATIC_CONST(boost::si::torque, pound_feet = 1.3558179483314 * si::newton_meters);
y luego hacer:
boost::si::torque torque = some_value * pound_feet;
Pero esto se siente insatisfactoria. Mi segundo intento fue intentar definir una nueva unidad base llamada pound_foot (ver abajo). Pero cuando intento usarlo de una manera similar a la anterior (con un lanzamiento a la unidad si) obtengo una página llena de errores. ¿Alguna sugerencia sobre el enfoque correcto?
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);
Funciona como un encanto, gracias. –