可変引数テンプレートを使用するためには、次の手順を実行します。
- テンプレートの宣言: テンプレートパラメータとして可変数の引数を指定します。たとえば、以下のように書くことができます。
template<typename... Args>
void myFunction(Args... args) {
// 引数の処理
}
- 引数の処理: 可変数の引数を処理するために、再帰的なアプローチを使用します。以下のように、展開パック(
args...
)を使って引数を処理するコードを書くことができます。
template<typename... Args>
void myFunction(Args... args) {
// 引数の処理
// ...
// 再帰呼び出し
myFunction(args...);
}
このように、可変引数テンプレートを使用することで、異なる数の引数を持つ関数やクラスを一つのテンプレートで表現することができます。以下に、いくつかのコード例を示します。
- 可変引数の合計を計算する関数:
template<typename... Args>
int sum(Args... args) {
return (args + ...);
}
この関数は、与えられた可変数の引数の合計を計算します。たとえば、sum(1, 2, 3, 4)
は10を返します。
- 可変引数の平均を計算する関数:
template<typename... Args>
double average(Args... args) {
return static_cast<double>(sum(args...)) / sizeof...(args);
}
この関数は、与えられた可変数の引数の平均値を計算します。たとえば、average(1, 2, 3, 4)
は2.5を返します。
以上が、C++における可変引数テンプレートの基本的な使用方法といくつかのコード例です。この機能を活用することで、柔軟なプログラミングソリューションを実現することができます。