簡體   English   中英

如何在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;

修復它。 該錯誤僅適用於尺寸不對齊的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM