このように書かれたテンプレートを見てきました:
template<typename T, bool = is_integral<T>::value, bool = is_floating_point<T>::value>
struct helper {};
template<typename T>
struct helper<T, true, false>
{
typedef TypeAppropriateForThisSpecialization type;
};
そして使用
typename helper<T>::type t;
どういう意味ですか?true
-false
テンプレート型パラメーターの組み合わせが省略された場合、is_integral
andによって評価されるという特殊化があるということですis_floating_point
か?
これは同じですか?(これは変数の宣言/定義です):
typename helper<T, true, false>::type t;
typename helper<T, is_integral<T>::value, is_floating_point<T>::value>::type t;