PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Generics + Templates zusammenbringen (C++/.net)


Bietchiebatchie
2008-02-04, 13:25:32
Folgendes Problem:
Ich will eine generische Graphenstruktur haben - generisch deshalb weil ich sie hauptsächlich unter c# nutzen will:

generic<typename TNode>
Graph {...}

Allerdings soll es hierbei verschiedene Modi/Optionen geben; z.B. Speicherung der Knoten in Adjazenzliste/Adjazenzmatrix, (un)gerichtet, Einfachkanten oder Mehrfachkanten etc.

Dazu bieten sich offensichtlich Templates an.

Mein Gedanke war daher folgender:
template<SaveMode saveMode, bool directed, ...>
GraphFactory
{
generic<typename TNode>
Graph {...}
}


Das geht aber leider nicht. Jetzt bin ich aber doch wieder auf den Geschmack von Templates gekommen und möchte dies sehr ungern mit massivem Copy-Paste in c# lösen(Exponentielles Wachstum der Kombinationen von Optionen :( ) . Gibt es daher irgendeine Möglichkeit Generics mit Templates zu kombinieren?

Coda
2008-02-04, 13:35:27
Ist das jetzt C++/CLI oder Managed C++?

Falls es C++/CLI ist, dann ist es nicht erlaubt generics und templates zu mischen. D.h. du müsstest das Graph-Generic mit einem Template ersetzen.

Bietchiebatchie
2008-02-04, 13:41:40
Ist das jetzt C++/CLI oder Managed C++?

C++/CLI


Falls es C++/CLI ist, dann ist es nicht erlaubt generics und templates zu mischen. D.h. du müsstest das Graph-Generic mit einem Template ersetzen.
Dann kann ich den Graph aber nicht mehr in anderen .net Sprachen verwenden.