Aloá,
Erstmal, zum Thema template method instantiation hab ich was gefunden
https://stackoverflow.com/questions/4933056/how-do-i-explicitly-instantiate-a-template-function
>Mein Frage-Background:
Ich habe für eine Ui-Anwendung einen Visitor, der für die verschiedenen
Caller-Typen die Dispatch(...); Methode hat.
Z.B.
1 | void UiVisitorVs::DispShowCall(Strct_ChnlMngr_Node* caller)
|
2 | {
|
3 | curUi = strctChnlMngrUi;
|
4 | areaForUis->Add(strctChnlMngrUi, 1, wxEXPAND | wxALL);
|
5 | while(areaForUis->GetChildren().size() > 1) { areaForUis->Remove(0);}
|
6 | strctChnlMngrUi->SetRef(caller);
|
7 | areaForUis->Layout();
|
8 | }
|
Weil es für alle Caller-Typen immer die selbe Logik ist, überlege ich
die Methode als Template zu schreiben und mit den konkreten Typen zu
instantieren.
>ABER
in dem Codeausschnitt gibt es einmal den "caller" (hier vom Typ
Strct_ChnlMngr_Node) als Argument - so weit so gut - UND eben auch einen
Pointer auf eine UI-Instanz, welche individuell für jeden Caller-Typ
ist.
>Daher meine zusammengestrickte Frage, ob es so etwas wie ein Konzept gibt, um
instanziierte Template-Klassen zu initialisieren?
Die Referenzen auf die verschiedenen UI-Instanzen bekommt der Visitor
während der Initialisierungsphase wenn das Programm aufstartet.
uiuiui...