如何创建标记为错误的对象?它是一个部分专门的模板类。
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 行使用第一个模板类。不是第二个。因为编译器不能将 10*5 分别分配给 H 和 W。