type-alias
std::va_list
namespace std {
using va_list = unspecified;
}
概要
va_listは、関数が受け取った可変個数の引数にアクセスするために必要な情報を保持する型である。
va_startマクロによって初期化し、va_argマクロで各引数を順に取り出し、va_endマクロで後始末を行う。
例
#include <cstdarg>
#include <iostream>
// count個のint引数の合計を求める
int sum(int count, ...)
{
std::va_list args;
va_start(args, count);
int total = 0;
for (int i = 0; i < count; ++i) {
total += va_arg(args, int);
}
va_end(args);
return total;
}
int main()
{
std::cout << sum(3, 10, 20, 30) << std::endl;
}
出力
60
関連項目