模板类默认浮点参数

template class default float parameter

本文关键字:参数 默认      更新时间:2023-10-16

我正在尝试定义一个取决于 <typename T, const doublestd::size_t>的类模板。我知道在C 14不可能在模板中声明Double类型的默认参数之前,但是我在某个地方读到了现在的可能性,但我不知道如何。我试图在这里和Goolge索引研究,但我没有找到我希望完成的工作:

template <typename Type, double threshold = 0.5 , std::size_t Sz = 64>
class DynBmatrix 
{
   constexpr DynBmatrix(std::vector<std::vector<Type>> ) noexcept ;
}
template<typename T, double TH,std::size_t S>
class DynBmatrix<T,TH,S>
{
    if (something > TH) 
    ...
}

,在主要实例中,模板仅为

DynBmatrix<int> dbm{} ;

edit :解决为folow:谢谢@marco

constexpr double th = 0.5 ;
template <typename Type, const double* TH = &th , std::size_t Sz = 64>

使用: const double* TH代替 double TH并在班级外定义 constexpr double th = 0.5 ;,然后获得相同的行为