Standard library header <cstdarg>

This header was originally in the C standard library as <stdarg.h>.

This header provides support for C-style variadic functions, while the C definition of "default argument promotions" is replaced with the C++ definition.


holds the information needed by va_start, va_arg, va_end, and va_copy


enables access to variadic function arguments
(function macro)
accesses the next variadic function argument
(function macro)
makes a copy of the variadic function arguments
(function macro)
ends traversal of the variadic function arguments
(function macro)


namespace std {
  using va_list = /*see description*/ ;
#define va_arg(V, P) /*see description*/
#define va_copy(VDST, VSRC) /*see description*/
#define va_end(V) /*see description*/
#define va_start(V, P) /*see description*/

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
CWG 2645 C++98 C++ defines "default argument promotions", but its C definition was used the C++ definition overrides the C definition

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.