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