我尝试定义一个取决于<typename T, const double
和std::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{} ;
编辑:解决如下:感谢@Marco
constexpr double th = 0.5 ;
template <typename Type, const double* TH = &th , std::size_t Sz = 64>
答案 0 :(得分:1)
使用:const double* TH
代替double TH
并在类外定义constexpr double th = 0.5 ;
,然后您获得相同的行为