Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 2.13 KB

File metadata and controls

35 lines (23 loc) · 2.13 KB

cstdarg

  • cstdarg[meta header]

<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, ...)となった
  • LWG Issue 4388. Align new definition of va_start with C23
    • C++26で、va_startの第2引数以降は破棄されること、およびそれらが不均衡なカッコやトークンに変換されない前処理トークンを含む場合はプログラムが不適格(診断不要)となることが明確化された