- cstdarg[meta header]
- macro[meta id-type]
#define va_arg(ap, type) unspecified- unspecified[italic]
va_listオブジェクトapから、type型の次の可変引数を取得する。
va_argを呼び出すたびに、apは次の引数を指すように進む。
type型に変換した、次の可変引数の値。
- 取得する引数が存在しない場合、または実際に渡された引数の型と
typeが互換でない場合、動作は未定義である(ただし、符号の有無だけが異なる整数型どうしなど、一部の組み合わせは許容される)。 apは、あらかじめva_startまたはva_copyで初期化されていなければならない。
#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;
}- va_arg[color ff0000]
- std::va_list[link va_list.md]
- va_start[link va_start.md]
- va_end[link va_end.md]
60
- C++03