Heim > Backend-Entwicklung > C++ > Können Sie Vorlagenparameter in Konstruktordefinitionen explizit angeben?

Können Sie Vorlagenparameter in Konstruktordefinitionen explizit angeben?

DDD
Freigeben: 2024-11-29 16:42:12
Original
654 Leute haben es durchsucht

Can You Explicitly Specify Template Parameters in Constructor Definitions?

Kann eine explizite Spezifikation von Vorlagenparametern in der Konstruktordefinition erreicht werden?

Obwohl es möglich ist, Konstruktorvorlagen innerhalb einer Klasse zu erstellen, leitet der Kompilierungsprozess in der Regel Vorlagenparameter aus den Argumenten ab bereitgestellt. Es bestehen jedoch Zweifel, ob es eine Syntax gibt, die die explizite Angabe von Vorlagenparametern in solchen Konstruktoren ermöglicht.

Betrachten Sie die folgende Struktur als Beispiel:

struct A {
  template<typename T>
  A() {}
};
Nach dem Login kopieren

Es stellt sich die Frage: Gibt es eine Methode für Diese Struktur instanziieren oder die Vorlagenparameter ihres Konstruktors explizit definieren?

In der Praxis können Szenarien auftreten, in denen der Compiler den richtigen Vorlagenkonstruktor nicht identifizieren kann. was zu potenziellen Schwierigkeiten führen kann. Eine explizite Angabe von Vorlagenparametern könnte die Fehlerberichterstattung verbessern oder sogar das Problem lösen.

Antwort:

Enttäuschenderweise bietet der C 03-Standard eine eindeutige Antwort:

"Da Konvertierungs-Member-Funktionsvorlagen und Konstruktor-Member-Funktionsvorlagen ohne Verwendung eines Funktionsnamens aufgerufen werden, gibt es keine Möglichkeit, eine explizite Vorlagenargumentliste dafür bereitzustellen diese Funktionsvorlagen. (§14.5.2/5)

Im Wesentlichen wird die explizite Angabe von Vorlagenparametern in Konstruktordefinitionen vom C 03-Standard nicht unterstützt.

Das obige ist der detaillierte Inhalt vonKönnen Sie Vorlagenparameter in Konstruktordefinitionen explizit angeben?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage