va_start
From cppreference.com
| ヘッダー <cstdarg> で定義 |
||
| void va_start( std::va_list ap, parm_n ); |
||
va_start マクロは、名前付き引数 parm_n の後に続く可変引数へのアクセスを可能にします。
va_start は、va_arg の呼び出しの前に、有効な va_list オブジェクト ap のインスタンスで呼び出す必要があります。
|
parm_n が パック展開 または ラムダキャプチャ の結果であるエンティティである場合、プログラムは不適格 (ill-formed) ですが、診断は要求されません。 |
(C++11以降) |
parm_n が参照型であるか、または デフォルト引数昇格 の結果として生じる型と互換性のない型である場合、動作は未定義です。
目次 |
[編集] パラメータ
| ap | - | va_list 型のオブジェクト |
| parm_n | - | 最初の可変パラメータの直前の名前付きパラメータ |
[編集] 展開される値
(なし)
[編集] 備考
va_start は、operator& がオーバーロードされている parm_n をサポートする必要があります。
[編集] 例
このコードを実行
出力
150
[編集] 欠陥報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| CWG 273 | C++98 | va_start がoperator& がオーバーロードされている parm_n をサポートする必要があるかどうか不明瞭であった |
必要 |
| LWG 2099 | C++98 | parm_n が 関数、配列、または参照型で宣言されている場合、動作は未定義であった |
動作は未定義である parm_n が参照型の場合 |
[編集] 関連項目
| 次の可変長引数にアクセスする (関数マクロ) | |
| 可変長引数の走査を終了する (関数マクロ) | |
| va_start のCドキュメント
| |