テンプレート関数を作成して、ファイルに名前を付けたデータセットを読み込みたいとします。 これらの関数は、float、double、またはlong doubleのいずれかの型を読み取ることができます。 テンプレートの引数に基づいてデータ型を付与できますか? 今私は使用してそれを行うことができた:hdf5の任意のデータ型を読み取るためのテンプレート関数の作成
template <typename T>
void gethdf(T * l, H5::H5File * file, char * name)
{
H5::DataSet dataset = H5::DataSet(file->openDataSet(name));
H5::DataType dt;
if(typeid(T) == typeid(float))
dt = H5::PredType::NATIVE_FLOAT;
...
dataset.read(l, dt);
}
テンプレートの特殊化/ SFINAEを参照してください。あなたが持っているものは動作しません。詳細な説明は –