nested class vs class in namespace



  • Kann ich innerhalb eines Programms die zwei Definitionen

    namespace foo
    {
    struct bar
    {
    //whatever;
    };
    }

    class foo
    {
    public:
    struct bar
    {
    //whatever;
    };
    //nichts was zu instanziieren ist
    }

    problemlos austauschen?

    d.h. ich möchte in einem Projekt diese zwei Definitionen in zwei verschiedenen Headern haben und je nach bedarf das eine oder das andere verwenden.

    Weiß dass das unsauber ist, aber ich könnte damit meine Compile-Zeiten wahrscheinlich dramatisch reduzieren (stichworte: vorkompilierte Header und Forward-Deklarationen).

    Also die Frage ist: ist ein namespace mit einer Typdefinition technisch gesehen dasselbe wie eine Klasse mit einer öffentlicher Typdefinition?

    NACHTRAG:
    ich weiß, dass man nen Compiler-Fehler bekommen wird. Aber es geht um die Header einer Lib. Im Compilat der Lib ist foo ne Klasse. In dem die Lib einbindenen Programm möchte ich foo als namensraum behandeln. D.h. der Compiler kriegt davon nix mit.


Log in to reply