如何在Boost Units中从另一个派生维度定义派生维度?

时间:2013-10-01 11:32:39

标签: c++ boost boost-units

在我的业务领域,我的值表示为W.m-2.K-1。

在'基本尺寸'的观点中,这些值表示为kg.s-3.K-1(W = kg.m2.s-3)

如何使用Boost Unit实现此维度和此单元?

我找到的唯一例子,包括official documentation,是关于从基础维度推导维度,但我想从'幂'维度派生出来,这本身就是derived dimension

另外,我不知道是否必须从幂维度派生,或者我是否必须从基础派生我的维度设置我的维度单位,例如它以W表示.M-2.K-1。我预测后者将更难以操纵(获得瓦数,给定一个区域和温度不会是微不足道的,因为我的'基础衍生'维度大约是千克和秒......)。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用单位运算符来处理更高级别的维度,然后键入将它们定义为有用的东西。这些单位运算符位于<boost/units/operators.hpp>头文件中。

文档中提供了示例,它们用于在此处为物理常量创建高级维度[<boost/units/systems/si/codata/typedefs.hpp>][1]

typedef divide_typeof_helper<frequency,electric_potential>::type frequency_over_electric_potential;

typedef divide_typeof_helper<electric_charge,mass>::type electric_charge_over_mass;

typedef divide_typeof_helper<mass,amount>::type mass_over_amount;

并针对您的具体情况:

typedef divide_typeof_helper< power , area >::type power_over_area;

typedef divide_typeof_helper< power_over_area, temperature >::type heat_transfer_coeff;