私は C++ テンプレートが初めてで、指定された時間単位と型で chrono::duration を返す関数を作成しようとしています。たとえば、次の行は時差を秒単位で 2 倍にしています。
std::chrono::duration<double> secd =
std::chrono::duration_cast<std::chrono::duration<double,std::ratio<1>>>(end - start);
期間を与えるクラス関数があり、テンプレートを使用して戻り値の型と単位を示したいと思います(前の例では、double と ratio<1> になります)。私がしたいのは、次の疑似コードに似たものです。
template typename<class T, class R> std::chrono::duration<T, R> getStepTime() {
return std::chrono::duration_cast<std::chrono::duration<T, R>>(_time);
}
where_time
は期間を持つクラス メンバーです。これまでの私の試みはすべてコンパイルさえしませんでした。
テンプレートを使用せずにこれを達成するためのより良い方法がある場合、私はすべて聞いています。