Heim > Backend-Entwicklung > C++ > Hauptteil

Warum muss ich immer noch Vorlagenargumente angeben, wenn ich Standardvorlagenargumente in C verwende?

Patricia Arquette
Freigeben: 2024-11-04 17:21:01
Original
243 Leute haben es durchsucht

Why Do I Still Need to Specify Template Arguments When Using Default Template Arguments in C  ?

Verstehen der Verwendung von Standardvorlagenargumenten in C

Frage:

Obwohl es möglich ist, eine Klassenvorlage mit zu definieren Standard-Vorlagenargumente, wie unten zu sehen:

<code class="cpp">template <typename T = int>
class Foo {
};</code>
Nach dem Login kopieren

Warum ist es notwendig, Vorlagenargumente anzugeben, wenn die Klasse im folgenden Beispiel instanziiert wird?

<code class="cpp">Foo<int> me;</code>
Nach dem Login kopieren

Antwort:

Im Gegensatz zu dem, was die Frage vermuten lässt, ist es nicht notwendig, Vorlagenargumente explizit anzugeben, wenn eine Klassenvorlage mit Standardvorlagenargumenten definiert wird. Ab C 17 ist folgender Code gültig:

<code class="cpp">Foo me;</code>
Nach dem Login kopieren

Vor C 17 war jedoch folgende Syntax erforderlich:

<code class="cpp">Foo<> me;</code>
Nach dem Login kopieren

Das bedeutet, dass die Template-Argumente sein müssen vorhanden, auch wenn sie leer sind. Dieses Verhalten ist analog zum Aufrufen einer Funktion mit einem einzelnen Standardargument, wobei sowohl foo() als auch foo ohne Argumente gültige Ausdrücke sind, aber nur ersteres die Funktion aufruft.

Durch die Einführung von Standardvorlagenargumenten, C 11 erleichterte die Arbeit mit Klassenvorlagen, indem es eine Möglichkeit bot, Standardwerte für Vorlagenparameter festzulegen. Darüber hinaus hat sich diese Syntax im Laufe der Zeit weiterentwickelt, um die Benutzerfreundlichkeit zu verbessern, wie die Verhaltensänderung zwischen C 11 und C 17 zeigt.

Das obige ist der detaillierte Inhalt vonWarum muss ich immer noch Vorlagenargumente angeben, wenn ich Standardvorlagenargumente in C verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!