我正在尝试将boost-unit
用于我的一个项目。在这个项目中,速度,加速度,角速度等几个量用SI系统基本单位表示。 (m / s,m / s ^ 2,rad / s ^ 2)
用户使用GUI界面绘制这些数量。让我们说一个角速度。 GUI应该允许用户动态更改基本单位,他有选项:
长度:m,cm,mm
时间:s,ms,min,h
角度:rad,deg
为了将5*m*s^-2*rad
用于我的项目,我需要一个通用函数,将5*1000/M_PI*180*mm*s^2*deg
之类的数量转换为template<typename H1, typename H2, typename U, typename V>
quantity<V> convert(const quantity<U>& quantity);
。
但我完全失去了写这个功能的最佳方法。
我认为必须是这样的:
H1
H2
和homogeneous_system
属于make_system
类型,可由textfield.background
构建。