Heim > Backend-Entwicklung > C++ > Warum funktioniert „Foo me;' nicht mit Standardvorlagenargumenten in C 11?

Warum funktioniert „Foo me;' nicht mit Standardvorlagenargumenten in C 11?

Barbara Streisand
Freigeben: 2024-11-04 14:02:02
Original
384 Leute haben es durchsucht

Why Does

Überwindung der expliziten Argumentspezifikation für Klassenvorlagen mit Standard-Vorlagenargumenten

C 11 führte Standard-Vorlagenargumente ein, ein Konzept, das zunächst Verwirrung stiftete. Dieser Artikel befasst sich mit diesem Thema und erklärt, warum eine Instanz einer Klassenvorlage mit Standardvorlagenargumenten, wie z. B. „Foo me;“, in main nicht gültig ist.

Betrachten Sie die folgende Klassenvorlage mit einem Standardvorlagenargument of int:

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

Obwohl das Standard-Template-Argument vorhanden ist, wird der Code „Foo me;“ führt im Wesentlichen zu einem Kompilierungsfehler. Dies liegt daran, dass leere spitze Klammern wie in „Foo<> me;“ erforderlich sind, um das Standardvorlagenargument explizit anzugeben.

Der Grund für diese Anforderung ist die Notwendigkeit einer konsistenten Syntax bei Funktionsaufrufen. In C erfordert eine Funktion mit einem Standardargument, dass die Argumentsyntax vorhanden ist, auch wenn der Standardwert verwendet wird. Diese Regel erstreckt sich auf Klassenvorlagen mit Standardvorlagenargumenten und gewährleistet so die Konsistenz der Sprachsyntax.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „Foo me;' nicht mit Standardvorlagenargumenten in C 11?. 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