標準を参照しているときに、テンプレート宣言に混乱する構文を見つけました。
template <typename T> class myarray;
template </*...*/, template <typename T> class C = myarray>
とはclass C = myarray
どういう意味ですか? デフォルトパラメータですか?ありがとう。
標準を参照しているときに、テンプレート宣言に混乱する構文を見つけました。
template <typename T> class myarray;
template </*...*/, template <typename T> class C = myarray>
とはclass C = myarray
どういう意味ですか? デフォルトパラメータですか?ありがとう。
これは、テンプレート テンプレート引数の既定値です。引数を指定しない場合、デフォルトで になりますmyarray
。
例:
template <typename> class Foo;
template <typename> class Bar;
template <typename T, template <typename> class C = Foo>
class Zip
{
typedef C<T> type; // example use of "C"
// ...
};
Zip<int, Bar> x; // OK
Zip<int> y; // OK, y has type Zip<int, Foo>
これは基本的に引数の「デフォルト値」です。