名前空間
変種
操作

va_start

提供: cppreference.com
< cpp‎ | utility‎ | variadic
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
ヘッダ <cstdarg> で定義
void va_start( std::va_list ap, parm_n );

va_start マクロは名前付き引数 parm_n に続く可変長引数にアクセスできるようにします。

parm_n が参照型またはデフォルト引数昇格の結果の型と互換性がない型の場合、動作は未定義です。

目次

[編集] 引数

ap - va_list 型のインスタンス
parm_n - 最初の可変長引数の前の名前付き引数

[編集] 展開後の値

(なし)

[編集] ノート

va_startoperator& がオーバーロードされた parm_n をサポートすることが要求されます。

[編集]

#include <iostream>
#include <cstdarg>
 
int add_nums(int count, ...) 
{
    int result = 0;
    std::va_list args;
    va_start(args, count);
    for (int i = 0; i < count; ++i) {
        result += va_arg(args, int);
    }
    va_end(args);
    return result;
}
 
int main() 
{
    std::cout << add_nums(4, 25, 25, 50, 50) << '\n';
}

出力:

150

[編集] 関連項目

可変長引数関数の次の引数にアクセスします
(関数マクロ) [edit]
可変長引数関数の引数のトラバーサルを終了します
(関数マクロ) [edit]