[英]Create a partial template specialization throws an error
我有一個示例類,如果該類是某種類型,則需要專門處理Print函數。 但這根本無法編譯。
template <typename classType, int size>
class MyVector
{
public:
classType* innerArray;
MyVector(){innerArray = new classType[size];}
~MyVector(){delete[] innerArray;}
void push_back(classType val)
{
innerArray[0] = val;
}
classType& operator[](int index)
{
assert(index >= 0);
return innerArray[index];
}
void Print() {
cout << "Printing Normal" << endl;
}
};
void MyVector<double>::Print()
{
cout << "Printing Double" << endl;
}
MyVector
需要2個模板參數,例如
void MyVector<double, 16>::Print()
{
cout << "Printing Double" << endl;
}
否則,您需要為第二個模板參數提供默認值:
template <typename classType, int size = 16>
class MyVector
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.