<cstdarg>ヘッダでは、関数が可変個数の引数を受け取るための機能を定義する。これらの機能は、va_list型がstd名前空間に属することを除いてC言語の標準ライブラリ<stdarg.h>ヘッダと同じである。
C++では可変引数テンプレート(パラメータパック)によって型安全に可変個数の引数を扱えるため、このヘッダの機能は主にC言語との互換や既存コードのために使用する。
フリースタンディング
このヘッダは、フリースタンディング処理系でも使用できる。本ヘッダが提供する全ての機能がフリースタンディング処理系で使用可能である。
型
| 名前 | 説明 | 対応バージョン |
|---|---|---|
va_list |
可変個数の引数にアクセスするための情報を保持する型 |
マクロ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
va_start |
可変引数へのアクセスを開始する | |
va_arg |
次の可変引数を取得する | |
va_copy |
va_listオブジェクトを複製する |
C++11 |
va_end |
可変引数へのアクセスを終了する | |
__STDC_VERSION_STDARG_H__ |
C23に準拠していることを示すマクロ | C++26 |
参照
- P3348R4 C++26 should refer to C23 not C17
- C++26でC23を参照するようになり、
__STDC_VERSION_STDARG_H__が追加され、va_startが可変引数マクロva_start(V, ...)となった
- C++26でC23を参照するようになり、
- LWG Issue 4388. Align new definition of
va_startwith C23