"Templating" ein Namespace

8

Ich würde gerne so etwas bauen:

%Vor%

Dies ist natürlich nicht möglich, da Sie keine Namensräume erstellen können. Stattdessen könnte ich eine Struktur anstelle eines Namensraums verwenden, aber dann kann ich die Namensraumfunktionen nicht über mehrere Dateien verteilen.

Gibt es eine Lösung für ein solches Problem?

PS: Ich weiß, dass ich die Klassen anpassen könnte, aber dann müsste ich angeben, welchen Vektortyp ich verwenden möchte, wenn ich eine neue Klasse erstelle.

    
Manuel 23.07.2010, 15:13
quelle

3 Antworten

5

Folgen Sie Ihrem Kommentar:

Anstatt zu schreiben

using namespace myNamespace<int>;

Verwenden Sie einfach templated Klassen und schreiben Sie stattdessen (oder welche Variante):

%Vor%

Ich denke, es ist besser, explizit anzugeben, welche Typen verwendet werden, anstatt etwas wie eine bestimmte Instanz eines Namespaces zu importieren.

Können Sie das Problem genauer beschreiben, das Sie dazu bringt, zu denken, dass Vorlagen-Namespaces nützlich wären?

Und denken Sie daran, dass Sie immer eine make_myClass1 free-Funktion schreiben können, um den Schablonentyp für Sie abzuleiten.

    
Mark B 23.07.2010, 15:38
quelle
2

Sie können das nicht, aber Sie können verschiedene Namespaces und typedefs angeben (nicht, dass ich es befürworte).

%Vor%     
quelle
0

Jedenfalls haben meine Klassen mehrere Template-Parameter. Jetzt habe ich diesen Ansatz erstellt:

%Vor%

und ich denke, ich werde es mit Mark B Ansatz kombinieren!

Prost, Leute!

    
Manuel 23.07.2010 15:46
quelle

Tags und Links