テンプレートクラスがあります
template <class dataType>
class SSDFinder
{
dataType a;
dataType b;
public:
void FindSSD();
};
実装は次のとおりです。
template<class dataType>
void SSDFinder<dataType>::FindSSD()
{
// some code.
}
ここで、dataType が x、y などの 2 つの要素を持つか、x、y、z などの 3 つの要素を持つかに応じて、この関数 FindSSD を特殊化する必要があります。
2 つまたは 3 つの要素を持つ方法は複数あります。3 つの要素に特化し始めると、cv::Point2i、cv::Point2d を持つことができます。cv::Point2f、cv::Vec など。
3 エレメントの場合も同様です。
2 つの要素を持つすべての dataType が 1 つの特殊化のみを持つことができ、3 つの要素を持つすべての dataType が別の特殊化を持つことができるように、すべての特定のものを一緒にクラブする方法はありますか??
これらの dataTypes には size() などの関数はありません。それらにアクセスしようとする以外に、要素の数を見つけることができます。例のために。タイプ情報を取得するために dataType.type() を実行できませんでした。多くのデータ構造はそれを提供していません。