Tôi hiện đang sử dụng tăng :: đơn vị để đại diện cho mô-men xoắn trong các đơn vị si, tuy nhiên tôi cho mô-men xoắn ở feet pound. Tôi đang cố gắng để tạo ra một đơn vị mô-men xoắn pound_foot và một chuyển đổi để hỗ trợ điều này. nỗ lực lười biếng của tôi là chỉ cần xác định:Làm thế nào để thêm đơn vị cơ bản của riêng bạn và chuyển đổi bằng cách sử dụng tăng :: đơn vị
BOOST_STATIC_CONST(boost::si::torque, pound_feet = 1.3558179483314 * si::newton_meters);
Và sau đó làm:
boost::si::torque torque = some_value * pound_feet;
Nhưng điều này cảm thấy không đạt yêu cầu. Nỗ lực thứ hai của tôi là cố gắng xác định một đơn vị cơ bản mới gọi là pound_foot (xem bên dưới). Nhưng khi tôi cố gắng sử dụng nó theo cách tương tự như trên (với một dàn diễn viên cho đơn vị si) tôi nhận được một trang đầy lỗi. Bất kỳ đề xuất về cách tiếp cận chính xác?
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);
Hoạt động như một sự quyến rũ - cảm ơn. –