|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <cstdarg> | ||
void va_start( std::va_list ap, parm_n); | ||
Theva_start macro enables access to the variable arguments following the named argumentparm_n.
va_start should be invoked with an instance to a validva_list objectap before any calls tova_arg.
If theparm_n is apack expansion or an entity resulting from alambda capture, the program is ill-formed, no diagnostic required. | (since C++11) |
Ifparm_n is of reference type, or of a type not compatible with the type that results fromdefault argument promotions, the behavior is undefined.
Contents |
| ap | - | an object of theva_list type |
| parm_n | - | the named parameter preceding the first variable parameter |
(none)
va_start is required to supportparm_n with overloadedoperator&.
Output:
150
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 | it was unclear whetherva_start is required tosupportparm_ns with overloaded operator& | required |
| LWG 2099 | C++98 | the behavior was undefined ifparm_n is declared with a function, array, or reference type | the behavior is undefined if parm_n is of reference type |
| accesses the next variadic function argument (function macro)[edit] | |
| ends traversal of the variadic function arguments (function macro)[edit] | |
C documentation forva_start | |