我正在尝试boost-unit
用于我的一个项目。在这个项目中,速度、加速度、角速度等几个量用 SI-System 基本单位表示。(m/s, m/s^2, 弧度/s^2)
用户使用 GUI 界面来绘制这些数量。比方说角速度。GUI 应允许用户动态更改基本单位,他有以下选项:
长度:米,厘米,毫米
时间:s、ms、min、h
角度:弧度、度
为了boost-unit
用于我的项目,我需要一个通用函数将数量转换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);
whereH1
和H2
are 的类型homogeneous_system
,可以由make_system
.