va_start
| Definiert im Header <cstdarg> |
||
| void va_start( std::va_list ap, parm_n ); |
||
Das Makro va_start ermöglicht den Zugriff auf die benannten Argumente, die dem benannten Argument parm_n folgen.
va_start sollte vor jedem Aufruf von va_arg mit einer Instanz eines gültigen va_list-Objekts ap aufgerufen werden.
|
Wenn parm_n eine Pack-Erweiterung oder eine Entität ist, die aus einer Lambda-Erfassung resultiert, ist das Programm schlecht geformt, keine Diagnose erforderlich. |
(seit C++11) |
Wenn parm_n vom Referenztyp ist oder von einem Typ, der nicht mit dem Typ kompatibel ist, der aus Standardargument-Promotions resultiert, ist das Verhalten undefiniert.
Inhalt |
[edit] Parameter
| ap | - | ein Objekt vom Typ va_list |
| parm_n | - | der benannte Parameter, der dem ersten variablen Parameter vorangeht |
[edit] Erweiterter Wert
(keine)
[edit] Hinweise
va_start muss parm_n mit überladenem operator& unterstützen.
[edit] Beispiel
Ausgabe
150
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| CWG 273 | C++98 | war unklar, ob va_start erforderlich ist, umparm_ns mit überladenem operator& zu unterstützen |
Gefordert |
| LWG 2099 | C++98 | war das Verhalten undefiniert, wenn parm_n mit einer Funktions-, Array- oder Referenztyp deklariert ist |
das Verhalten ist undefiniert, wenn parm_n vom Referenztyp ist |
[edit] Siehe auch
| greift auf das nächste variadische Funktionsargument zu (Funktionsmakro) | |
| beendet die Durchquerung der variadischen Funktionsargumente (Funktionsmakro) | |
| C-Dokumentation für va_start
| |