1
我想跨模板实例共享一个函数,并想知道是否有办法做到这一点。跨模板实例共享功能
_____编辑澄清问题_____
让我们看看下面的例子
#include <array>
template <unsigned int K>
class kd_tree
{
public:
using kd_point = std::array<float, K>;
bool isValid(const kd_point &kdPoint) const
{
for (unsigned i = 0; i < K; i++)
if (isnan(kdPoint[i]) ||
kdPoint[i] == numeric_limits<float>::infinity() ||
kdPoint[i] == -numeric_limits<float>::infinity())
return false;
return true;
}
};
对于每个k值,isValid方法的新值将被创建,通过什么不同,除了的具体值K.肯定不需要K来使用kd_point的运算符[]
问题是否有办法从类中取出isValid并将其作为接受kd_point & a K作为参数的函数,并检查t他指出,从而将可执行文件的大小保存在多个副本上,例如一个用于K = 2 &另一个用于K = 3。