c++ - 如何从 Boost Units 中的另一个派生维度定义派生维度?

标签 c++ boost boost-units

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

从“基本维度”的角度来看,这些值表示为 kg.s^-3.K^-1 (W = kg.m^2.s^-3)

如何使用 boost 单元实现这个维度和这个单元?

我找到的唯一示例,包括 official documentation ,是关于从 base 维度派生维度,但我想从“功率”维度派生,它本身就是一个 derived dimension .

此外,我不知道我是否必须从功率维度导出,或者我是否必须从基础维度导出我的维度设置我的维度单位,例如用 W 表示.m^-2.K^-1。我预见到后者会更难操纵(考虑到我的“基础派生”维度大约是千克和秒......,在给定面积和温度的情况下获得瓦数并不是微不足道的......)。

谢谢。

最佳答案

您可以使用单位运算符来操纵更高级别的维度,然后将它们定义为有用的东西。这些单位运算符在 <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;

关于c++ - 如何从 Boost Units 中的另一个派生维度定义派生维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115072/

相关文章:

c++ - 从0到7生成8个唯一的随机数

c++ - 我必须使用 0.f 初始化 float 吗?

c++ - remove_if 的一元谓词可以有副作用吗?

c++ - R vs Rcpp vs Armadillo 中矩阵 rowSums() 与 colSums() 的效率

c++ - 对于 Boost.Propertytree,有什么方法可以使用 JSON 点符号来引用数组元素?

c++ - 将运行时参数传递给 odeint 集成器

c++ - 使用 boost-unit 获取给定数量的基本单元的功率

c++ - boost 与标准原子顺序一致性语义

c++ - boost const_iterator 到迭代器的转换

c++ - 将 boost.units 中的单位从 angular_velocity 转换为 degrees_per_second