va_start
From cppreference.com
Defined in header <cstdarg>
|
||
void va_start( std::va_list ap, parm_n ); |
||
The va_start
macro enables access to the variable arguments following the named argument parm_n
.
va_start
should be invoked with an instance to a valid va_list object ap
before any calls to va_arg.
If the |
(since C++11) |
If parm_n
is declared with reference type or with a type not compatible with the type that results from default argument promotions, the behavior is undefined.
Parameters
ap | - | an instance of the va_list type |
parm_n | - | the named parameter preceding the first variable parameter |
Expanded value
(none)
Notes
va_start
is required to support parm_n
with overloaded operator&
.
Example
Run this code
Output:
150
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 273 | C++98 | va_start may not work if unary operator& is overloaded
|
required to work correctly even if operator& is overloaded
|
See also
accesses the next variadic function argument (function macro) | |
ends traversal of the variadic function arguments (function macro) |