2
我有一個模板類模板半專業化
template <class dataType>
class SSDFinder
{
dataType a;
dataType b;
public:
void FindSSD();
};
實現如下:
template<class dataType>
void SSDFinder<dataType>::FindSSD()
{
// some code.
}
現在我需要專注這個功能FindSSD取決於是否的dataType有2個元素例如x,y或3元素,例如x,y,z。
有多種方式可以有2或3個元素。當我開始專注於3個元素時,我可以有cv :: Point2i,cv :: Point2d。 cv :: Point2f,cv :: Vec等。
類似地爲3個元素。
有沒有辦法將所有具體的東西放在一起,這樣所有具有2個元素的數據類型可以只有1個專業化,而3個元素可以有另一個專業化,那就是所有?
這些數據類型中沒有size()等函數,我可以找到除嘗試訪問它們之外還有多少個元素。例如。我無法做dataType.type()來獲取類型信息。許多數據結構不提供這一點。
如果不檢查具有特定名稱的成員,我不認爲這是可能的。 – chris
即使我可以在嘗試訪問第三個元素時重寫段錯誤,我也可以編寫一個快速函數。即使這在這種情況下看起來很 – navderm
,你需要專門的類,而不是成員函數 – cppguy