Variadic-Vorlagen und das Ellipsen-Token ("...")
In C 11 ermöglichen Variadic-Vorlagen eine flexible Anzahl von Vorlagen Parameter. Bei der Definition einer Variadic-Vorlage spielt das Auslassungszeichen (...) eine entscheidende Rolle.
Entpacken vs. Packen
Die Position der Auslassungspunkte bestimmt ihre Funktion:
Beispiel für das Entpacken
Betrachten Sie die folgende variable Vorlagenfunktion:
<code class="cpp">template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); }</code>
Beim Aufrufen von make_unique mit mehreren Argumenten ermöglichen die Auslassungspunkte (in std::forward(Args>(args)...) der Funktion, eine variable Anzahl von Argumenten zu akzeptieren. Die Auslassungspunkte entpacken das Args-Parameterpaket, was zur Folge hat Folgender erweiterter Ausdruck:
<code class="cpp">std::forward<Arg0>(arg0), std::forward<Arg1>(arg1), ...</code>
Platzierung der Auslassungspunkte in Vorlagen- und Funktionsargumenten
In der Liste der Vorlagenargumente werden die Auslassungspunkte in der Mitte platziert, um anzuzeigen, dass der Parameter Das Paket wird in der Funktionsparameterliste fortgesetzt. Dies liegt daran, dass dem variadischen Parameterpaket möglicherweise zusätzliche Vorlagenparameter (z. B. nicht-variadische Parameter) folgen.
In der Funktionsimplementierung werden die Auslassungspunkte am Ende platziert des Ausdrucks, um das Ende der entpackten Argumente zu markieren. Dadurch wird sichergestellt, dass alle verbleibenden Argumente übergeben werden, ohne in eine einzige Entität gepackt zu werden.
Zusätzliche Anwendungen
Die Auslassungspunkte kann auch in anderen Kontexten verwendet werden, wie zum Beispiel:
Das obige ist der detaillierte Inhalt vonWie funktioniert das Auslassungszeichen (...) in C 11-Variadic-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!