私は現在、boost::units を使用して si 単位でトルクを表していますが、ポンド フィートでトルクが与えられています。したがって、ポンド フィート単位のトルクと、これをサポートするための変換を作成しようとしています。私の怠惰な試みは、単に定義することでした:
BOOST_STATIC_CONST(boost::si::torque, pound_feet = 1.3558179483314 * si::newton_meters);
そして、次のようにします。
boost::si::torque torque = some_value * pound_feet;
しかし、これではもったいない気がします。2 番目の試みは、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);