2017-12-02 7 views
2

<typename T, const doublestd::size_t>に依存するクラステンプレートを定義しようとしています。私はC++ 14が不可能であった前に、テンプレートのdouble型のデフォルトパラメータを宣言していましたが、今どこかでそれを読むことは可能ですが、どうやってどうなっているのか分かりません。私はこことgoolgeで研究をインデックスしようとしたが、私は私が達成したいものを見つけていなかったことがある:テンプレートクラスのデフォルトのfloatパラメータ

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:使用のおかげ@Marco

constexpr double th = 0.5 ; 

template <typename Type, const double* TH = &th , std::size_t Sz = 64> 
+0

[なぜ浮動小数点値をテンプレートパラメータとして使用できないのですか?](https://stackoverflow.com/questions/2183087/why-cant-i-use-floatテンプレートパラメータとしての値) – nsubiron

答えて

1

:folowとして解く代わりdouble THconst double* THをクラス外で定義constexpr double th = 0.5 ;あなたは同じ振る舞いを持っています

関連する問題