Vorlage mit Nicht-Typ-Parametern
Vorlagenparameter werden häufig verwendet, um Typanforderungen anzugeben, aber es ist auch möglich, Vorlagen mit Nicht-Typ-Parametern zu deklarieren. Typparameter, wie beispielsweise vorzeichenlose Ganzzahlen.
Syntax und Bedeutung
Die Syntax für eine Vorlage mit einem Nichttypparameter lautet:
template <unsigned int N>
wobei N den Nicht-Typ-Parameter darstellt. Dieser Parameter kann dann innerhalb der Vorlage als Kompilierungszeitkonstante vom Typ unsigned int verwendet werden.
Anwendungsfälle
Nicht-Typ-Parameter sind in verschiedenen Szenarien nützlich:
Typparameter vs. Nichttypparameter
Es ist wichtig, den Unterschied zwischen Typparametern und Nichttypparametern zu beachten. Typparameter stellen Typen dar (z. B. Klasse T oder Vorlage T), während Nichttypparameter Konstanten darstellen (z. B. unsigned int N).
Beispiel
Bedenken Sie das Folgende Vorlage:
template <unsigned int N>
struct Vector {
unsigned char bytes[N];
};
Hier ist N ein nicht typisierter Parameter, der die Größe des Byte-Arrays bestimmt.
<code class="cpp">Vector<3> v; // Vector with 3 bytes</code>
Standardwerte
Es ist möglich, Standardwerte für Nicht-Typ-Parameter anzugeben, sodass die Vorlage verwendet werden kann, ohne den Parameter explizit anzugeben. Zum Beispiel:
<code class="cpp">template <unsigned int SIZE = 3> struct Vector { unsigned char buffer[SIZE]; };</code>
Die obige Vorlage setzt GRÖSSE standardmäßig auf 3, daher gilt Folgendes:
<code class="cpp">Vector v; // Equivalent to Vector<3></code>
Schlussfolgerung
Nicht- Typparameter in Vorlagen bieten Flexibilität und ermöglichen die Wiederverwendung von Code mit festen oder konstanten Werten. Sie ermöglichen eine Reihe von Anwendungsfällen, von der Array-Größe bis zur bedingten Kompilierung.
Das obige ist der detaillierte Inhalt vonWann würden Sie Nicht-Typ-Parameter in C-Vorlagen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!