使用boost::units实现异构单元片段
在进行物理量计算时,经常需要将多个具有不同物理单位的量进行运算。使用boost::units模块,我们可以实现异构单元片段,即将不同的物理单位组合成一个整体进行计算。
首先,我们需要包含boost/units/quantity.hpp和boost/units/systems/si.hpp头文件,前者定义了物理量类型quantity,后者定义了国际单位制(SI)的基本单位。
#include <boost/units/quantity.hpp>
#include <boost/units/systems/si.hpp>
using namespace boost::units;
using namespace boost::units::si;
接下来,我们可以定义一个长度物理量quantity和一个质量物理量quantity:
quantity<length> l = 10 * meters;
quantity<mass> m = 2 * kilograms;
现在,我们可以将它们相乘,得到一个新的物理量quantity<mass,length>: