私はboost-unit
自分のプロジェクトの1つに使用しようとしています。このプロジェクトでは、速度、加速度、角速度などのいくつかの量が SI システムの基本単位で表されます。(m/s、m/s^2、rad/s^2)
ユーザーは、GUI インターフェイスを使用してこれらの量をプロットします。角速度としましょう。GUI では、ユーザーが基本単位を動的に変更できるようにする必要があります。オプションは次のとおりです。
長さ: m、cm、mm
時間: 秒、ミリ秒、分、時間
角度: ラジアン、デグ
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