Haftungsausschluss: Ich fürchte, die kurze Antwort auf meine Frage ist "nicht möglich". Aber da ich kein C++ - Experte bin, dachte ich, ich versuche es immer noch und frage hier, vielleicht gibt es eine Lösung, die mir nicht bewusst ist.Können wir Templates mit nicht-Templates in C++ "umhüllen"?
So habe ich als Templat containerartigen Klasse MyContainer
, die intern speichert Daten in einer std::list<T>
, wo T
den Vorlagentyp-Klasse ist. Das funktioniert gut.
Jetzt möchte ich eine weitere Klasse hinzufügen, die Instanzen dieser Vorlagen-Klasse in einem std::map<std::string, MyContainer>
zuordnen muss. Der Compiler fordert mich jedoch auf, den Template-Klassentyp für den Value-Part der Map wie in std::map<std::string, MyContainer<T>>
anzugeben. Aber ich würde diese Vorlage hier lieber weglassen, da ich dann auch Vorlagen für die Wrapper-Klasse verwenden müsste.
Also meine Frage: Gibt es eine Möglichkeit zu erreichen, was ich versuche zu tun, den Vorlagen-Typ für die Wrapper-Klasse zumindest in gewissem Maße weglassen? Oder ist das in C++ einfach nicht möglich, weil der Compiler diese Information ohnehin benötigt?
Es gibt nicht so etwas wie "Templat-Klasse". C++ hat Klassenvorlagen. Klassenvorlagen sind keine Klassen. Deine Beschreibung ist bei weitem nicht klar. Bitte zeigen Sie mehr von Ihrem Code. –