サーチ…
パラメータパックを含むテンプレート
template<class ... Types> struct Tuple {};
パラメータパックは、0個以上のテンプレート引数を受け入れるテンプレートパラメータです。テンプレートに少なくとも1つのパラメータパックがある場合は、 バリデーショナルテンプレートです。
パラメータパックの拡張
パターンparameter_pack ...
は、 parameter_pack
カンマで区切られたリストとそのパラメータのそれぞれに展開されます
template<class T> // Base of recursion
void variadic_printer(T last_argument) {
std::cout << last_argument;
}
template<class T, class ...Args>
void variadic_printer(T first_argument, Args... other_arguments) {
std::cout << first_argument << "\n";
variadic_printer(other_arguments...); // Parameter pack expansion
}
上のコードは、 variadic_printer(1, 2, 3, "hello");
呼び出されましたvariadic_printer(1, 2, 3, "hello");
プリント
1
2
3
hello
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow