va_start
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<cstdarg>
|
||
|
void
va_start
(
std
::
va_list
ap, parm_n
)
;
|
||
Макрос
va_start
обеспечивает доступ к переменным аргументам, следующим за именованным аргументом
parm_n
.
va_start
должен вызываться с экземпляром корректного объекта
va_list
ap
до любых вызовов
va_arg
.
|
Если parm_n является pack expansion или сущностью, полученной в результате lambda capture , программа является некорректной, диагностика не требуется. |
(since C++11) |
Если parm_n имеет ссылочный тип или тип, несовместимый с типом, получаемым в результате стандартных преобразований аргументов , поведение не определено.
Содержание |
Параметры
| 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
|
|