va_start
| Определён в заголовке <cstdarg>
|
||
void va_start( std::va_list ap, parmN );
|
(до C++26) | |
void va_start( std::va_list ap, ... );
|
(начиная с C++26) | |
Макрос va_start предоставляет доступ к дополнительным аргументампосле именованного аргумента parmN(до C++26).
va_start Должен быть вызван с экземпляром допустимого объекта std::va_list ap до любых вызовов va_arg.
Если |
(до C++26) | ||
|
Если для |
(начиная с C++26) |
Параметры
| ap | - | объект типа va_list |
| parm_n | - | именованный параметр, предшествующий первому переменному параметру |
Развернутое значение
(нет)
Примечания
va_start
требуется для поддержки
parm_n
с перегруженным
operator&
.
Пример
Вывод:
150
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| CWG 273 | C++98 |
было неясно, требуется ли от
va_start
поддержка parm_n с перегруженным
operator&
|
требуется |
| LWG 2099 | C++98 |
поведение было неопределенным, если
parm_n
объявлен с типом функции, массива или ссылки |
поведение неопределено, если
parm_n имеет ссылочный тип |
Смотрите также
|
обращается к следующему аргументу вариативной функции
(функциональный макрос) |
|
|
завершает обход аргументов вариативной функции
(функциональный макрос) |
|
|
Документация C
для
va_start
|
|