如何在 Boost Unit 中正确定义派生单位
How to properly define a derived unit in Boost Unit
我正在尝试在 boost::units
中为 si
系统的质量流量创建一个 derived_dimension
。我找不到任何关于如何完成这个简单任务的文档。这是我目前所拥有的,但我在编译过程中遇到错误。
typedef boost::units::derived_dimension<
boost::units::mass_base_dimension, 3,
boost::units::time_base_dimension, -1
>::type mass_flow_rate_dimension;
typedef boost::units::unit<
mass_flow_rate_dimension,
boost::units::si::system
> mass_flow_rate_unit;
typedef boost::units::quantity<mass_flow_rate_unit, double> mass_flow_rate;
BOOST_UNITS_STATIC_CONSTANT(kilogram_per_seconds, mass_flow_rate);
我是这样得到错误的:
mass_flow_rate MFR;
quantity<mass_density> density = 1.0 * kilogram_per_cubic_meter;
quantity<si::time> Time = 1.0 * second;
quantity<volume> vol = 1.0 * cubic_meters;
MFR = density * vol / Time;
错误:C2338 (is_simply_convertible::value == true)
mass_flow_rate_dimension
尺寸错误。你有质量到第三而不仅仅是质量
typedef boost::units::derived_dimension<
boost::units::mass_base_dimension, 1,
boost::units::time_base_dimension, -1
>::type mass_flow_rate_dimension;
修复它。该错误仅适用于尺寸不对齐的情况。
我正在尝试在 boost::units
中为 si
系统的质量流量创建一个 derived_dimension
。我找不到任何关于如何完成这个简单任务的文档。这是我目前所拥有的,但我在编译过程中遇到错误。
typedef boost::units::derived_dimension<
boost::units::mass_base_dimension, 3,
boost::units::time_base_dimension, -1
>::type mass_flow_rate_dimension;
typedef boost::units::unit<
mass_flow_rate_dimension,
boost::units::si::system
> mass_flow_rate_unit;
typedef boost::units::quantity<mass_flow_rate_unit, double> mass_flow_rate;
BOOST_UNITS_STATIC_CONSTANT(kilogram_per_seconds, mass_flow_rate);
我是这样得到错误的:
mass_flow_rate MFR;
quantity<mass_density> density = 1.0 * kilogram_per_cubic_meter;
quantity<si::time> Time = 1.0 * second;
quantity<volume> vol = 1.0 * cubic_meters;
MFR = density * vol / Time;
错误:C2338 (is_simply_convertible::value == true)
mass_flow_rate_dimension
尺寸错误。你有质量到第三而不仅仅是质量
typedef boost::units::derived_dimension<
boost::units::mass_base_dimension, 1,
boost::units::time_base_dimension, -1
>::type mass_flow_rate_dimension;
修复它。该错误仅适用于尺寸不对齐的情况。