Kann der template-Parameter eines Konstruktors angegeben werden?

Konstruktor der Klasse kann eine template-Funktion. An der Stelle, wo so ein Konstruktor aufgerufen wird, der compiler in der Regel schaut auf die gegebenen Argumente an den Konstruktor und bestimmt die verwendeten template-Parameter von Ihnen. Gibt es auch die syntax zum angeben der template-Parameter explizit?

Ein erfundenes Beispiel:

struct A {
   template<typename T>
   A() {}
};

Gibt es eine Möglichkeit diese Klasse instanziieren? Was ist die syntax explizit den Konstruktor der template-Parameter?

Mein Anwendungsfall wäre ein problem waren die compiler nicht scheinen zu finden, die richtigen Vorlagen-Konstruktor. Explizite Angabe der template-Parameter würde wahrscheinlich generieren, mehr nützliche Fehlermeldungen oder sogar das problem zu beheben.

  • Die explizite Angabe von template-Argumente für Konstruktoren funktioniert nur in explizite Spezialisierungen, Instanzen, out-of-line-Definitionen und friend-Deklarationen des Konstruktors.
  • template <class TArg> struct A { template<typename T = TArg> A() {} }; - funktioniert gut für mich. Aber natürlich haben wir jetzt die Vorlage Klasse.
InformationsquelleAutor sth | 2010-05-18
Schreibe einen Kommentar