Angeben von Standardvorlagenargumenten beim Instanziieren von Klassenvorlagen mit Standardvorlagenargumenten
C 11 hat Standardvorlagenargumente eingeführt, um eine prägnante und bequeme Möglichkeit zu bieten Geben Sie Vorlagenargumente an, wenn Sie eine Klassenvorlage instanziieren. Allerdings kann die Angabe von Argumenten für eine Klassenvorlage mit Standardvorlagenargumenten verwirrend sein.
Man könnte davon ausgehen, dass die einfache Deklaration einer Instanz der Klassenvorlage, wie z. B. Foo me;, ausreichen würde. In diesem Fall erfordert der Compiler jedoch die explizite Angabe der Vorlagenargumente.
Der richtige Weg, eine Klassenvorlage mit Standardvorlagenargumenten zu instanziieren, besteht darin, die Liste der Vorlagenargumente leer zu lassen. Das heißt, anstelle von Foo me; sollte der Code Foo<> lauten. Mich;. Dies zeigt dem Compiler an, dass die Standardvorlagenargumente für die Klasseninstanziierung verwendet werden sollen.
Diese Syntax stimmt mit der Konvention zum Aufrufen einer Funktion mit Standardargumenten überein. Beispielsweise kann eine Funktion foo mit einem einzelnen Standardargument aufgerufen werden, ohne das Argument als foo() anzugeben. Die Argumentsyntax muss jedoch weiterhin vorhanden sein.
Hinweis: Ab C 17 ist es möglich, eine Instanz einer Klassenvorlage zu deklarieren, ohne Vorlagenargumente anzugeben, wie in Foo me; . Dieses Verhalten unterscheidet sich von früheren C-Versionen und sollte mit Vorsicht verwendet werden, da es möglicherweise nicht von allen Compilern unterstützt wird.
Das obige ist der detaillierte Inhalt vonWie instanziiere ich eine Klassenvorlage mit Standardvorlagenargumenten in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!