我正在看以下帖子write a boost::multi_array to hdf5 dataset,無法理解Leo Goodstadt在第一個答案中使用的模板語法。不幸的是,我沒有足夠的聲譽直接評論給出的答案,這就是爲什麼我創建了這個單獨的問題。關於C++模板語法的解釋
據我瞭解,這是一個用靜態方法type()創建的結構,它返回相應的類型。
然後這個泛型結構被一個固定類型覆蓋。但是大括號裏面寫的是什麼,即它的含義是什麼?例如,什麼是下面的意思:
{ H5::IntType type { H5::PredType::NATIVE_CHAR
};
};
該炭模板的第一定義中:
template<> struct get_hdf5_data_type<char> {
H5::IntType type {
H5::PredType::NATIVE_CHAR
};
};
我複製的模板定義的基本部分的下方,但可能更容易查看原始帖子以獲得清晰的圖片。
template<typename T> struct get_hdf5_data_type {
static H5::PredType type() {
//static_assert(false, "Unknown HDF5 data type");
return H5::PredType::NATIVE_DOUBLE;
}
};
template<> struct get_hdf5_data_type<char> {
H5::IntType type { H5::PredType::NATIVE_CHAR };
};
template<> struct get_hdf5_data_type<long long> {
H5::IntType type { H5::PredType::NATIVE_LLONG };
};
template<> struct get_hdf5_data_type<unsigned long long> {
H5::IntType type { H5::PredType::NATIVE_ULLONG };
};
template<> struct get_hdf5_data_type<int8_t> {
H5::IntType type { H5::PredType::NATIVE_INT8 };
};
*不幸的是,我沒有足夠的信譽直接評論給出的答案,這就是爲什麼我創建了這個單獨的問題。* - 哈利路亞,系統的工作原理!問題屬於新問題。 – chris 2015-02-09 21:38:37