Standard library header <cstdarg>
From cppreference.net
C++
Standard library headers
このヘッダは元々C標準ライブラリに <stdarg.h> として存在していました。
このヘッダーは Cスタイル可変引数関数 のサポートを提供します。一方で、 「デフォルト引数プロモーション」のC定義 は C++定義 に置き換えられています。
型 |
||
|
va_start
、
va_arg
、
va_end
、および
va_copy
が必要とする情報を保持する
(typedef) |
||
マクロ |
||
|
可変個引数関数の引数へのアクセスを可能にする
(関数マクロ) |
||
|
次の可変個引数関数の引数にアクセスする
(関数マクロ) |
||
|
(C++11)
|
可変個引数関数の引数のコピーを作成する
(関数マクロ) |
|
|
可変個引数関数の引数の走査を終了する
(関数マクロ) |
||
概要
namespace std { using va_list = /*詳細は説明を参照*/ ; } #define va_arg(V, P) /*詳細は説明を参照*/ #define va_copy(VDST, VSRC) /*詳細は説明を参照*/ #define va_end(V) /*詳細は説明を参照*/ #define va_start(V, P) /*詳細は説明を参照*/
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| CWG 2645 | C++98 | C++は「デフォルト引数プロモーション」を定義しているが、Cの定義が使用されていた | C++の定義がCの定義を上書きする |