Преобразование заданных величин в другую систему базовых единиц
Я пытаюсь использовать boost-unit
для одного из моих проектов. В этом проекте несколько величин, таких как скорость, ускорение, угловая скорость, представлены базовыми единицами системы SI. (м / с, м / с ^2, рад / с ^2)
Пользователь использует графический интерфейс для отображения этих величин. Допустим, угловая скорость. Графический интерфейс должен позволять пользователю динамически менять базовые блоки, где у него есть опции:
Длина: м, см, мм
Время: с, мс, мин, ч
Угол: рад, град
Для того, чтобы использовать 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);
куда H1
а также H2
имеют тип homogeneous_system
, что можно построить make_system
,