In C kann ein Klassenkonstruktor als Vorlagenfunktion definiert werden. Normalerweise bestimmt der Compiler die verwendeten Vorlagenparameter, indem er die Argumente untersucht, die beim Aufruf an den Konstruktor übergeben werden. Gibt es jedoch eine Möglichkeit, stattdessen die Vorlagenparameter explizit anzugeben?
Betrachten Sie die folgende Klasse:
struct A { template<typename T> A() {} };
Leider bietet C 03 keine Möglichkeit, die Vorlagenparameter eines Konstruktors explizit anzugeben. Im Standard heißt es:
[Hinweis: Da die Liste der expliziten Vorlagenargumente dem Funktionsvorlagennamen folgt und
da Konvertierungs-Member-Funktionsvorlagen und Konstruktor-Member-Funktionsvorlagen ohne Verwendung eines Funktionsnamens aufgerufen werden, gibt es keinen Möglichkeit, eine explizite Vorlagenargumentliste für diese Funktionsvorlagen bereitzustellen.] (§14.5.2/5)
Das obige ist der detaillierte Inhalt vonKönnen Sie Vorlagenparameter in C-Konstruktoren explizit angeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!