如何創建標記爲錯誤的對象?它是一個部分專業的模板類。使用部分專用模板類創建對象
template<typename C, typename size_type = unsigned short>
struct MatrixDataRect {...};
template<typename T, size_t H, size_t W>
class MatrixDataRect<std::array<T,H*W>, size_t> {...};
int main()
{
MatrixDataRect<std::vector<double>> mat_data_vector;
MatrixDataRect<std::array<double,10*5>> mat_data_array; // WRONG!!!!
return 0;
}
這是錯誤的,因爲WRONG行使用第一個模板類。不是第二。 因爲編譯器不能分別給H和W分配10 * 5。
爲什麼這是錯的? (在我的GCC裏沒問題) – deepmax 2013-03-03 18:39:20
還有我的gcc! – 2013-03-03 18:40:38
@MM .:我認爲*錯誤*對他來說意味着它不會實例化專業化 – 2013-03-03 18:40:46