va_start
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<cstdarg>
|
||
|
void
va_start
(
std
::
va_list
ap, parm_n
)
;
|
||
Das
va_start
Makro ermöglicht den Zugriff auf die variablen Argumente, die dem benannten Argument
parm_n
folgen.
va_start
sollte mit einer Instanz eines gültigen
va_list
-Objekts
ap
aufgerufen werden, bevor irgendwelche Aufrufe von
va_arg
erfolgen.
|
Wenn parm_n eine Pack-Erweiterung oder eine Entität aus einer Lambda-Aufnahme ist, ist das Programm fehlerhaft, keine Diagnose erforderlich. |
(seit C++11) |
Wenn parm_n vom Referenztyp ist oder von einem Typ, der nicht mit dem Typ kompatibel ist, der sich aus den Standardargument-Promotions ergibt, ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Parameter
| ap | - | ein Objekt vom Typ va_list |
| parm_n | - | der benannte Parameter vor dem ersten variablen Parameter |
Erweiterter Wert
(keine)
Hinweise
va_start
wird benötigt, um
parm_n
mit überladenem
operator&
zu unterstützen.
Beispiel
Ausgabe:
150
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| CWG 273 | C++98 |
es war unklar, ob
va_start
verpflichtet ist,
parm_n s mit überladenem
operator&
zu unterstützen
|
erforderlich |
| LWG 2099 | C++98 |
das Verhalten war undefiniert, wenn
parm_n
mit einem Funktions-, Array- oder Referenztyp deklariert wurde |
das Verhalten ist undefiniert, wenn
parm_n vom Referenztyp ist |
Siehe auch
|
greift auf das nächste variadische Funktionsargument zu
(Funktionsmakro) |
|
|
beendet die Durchlaufung der variadischen Funktionsargumente
(Funktionsmakro) |
|
|
C-Dokumentation
für
va_start
|
|