Das Schlüsselwort Export



  • Hallo!

    Selbstverständlich habe ich schon gegoogelt, aber ich wollte doch euer Meinungen einholen:

    Wie kann ich am besten erklären das ich die Methoden einer Templateklasse ebenfalls in der headerdatei definieren musste?

    Ich habe jetzt zwar gelesen das wenn die Compiler export unterstützen würden eine Trennung möglich wäre, allerdings habe ich keine Ahnung wie weil ich das ja nie testen konnten.

    Müsste ich dann in der cpp Datei so etwas schreiben

    export template<class T> void Klasse<T>::Methode()
    {}
    

    oder wie?

    Und stimmt diese Aussage

    **
    Wenn eine Schablonenfunktion von anderen Übersetzungseinheiten aus verwendet werden soll, dann darf sie nicht in einem namenlosen Namensraum definiert werden und muß mit dem Schlüsselwort "export" gekennzeichnet werden (nicht zu verwechseln mit dem ähnlich klingenden Schlüsselwort "extern").
    **

    Muss ich echt einen eigenen Namensraum erschaffen?



  • Ich denke, dass es so sein sollte. Aber nachdem ich keinen Compiler kenne, der das kann, hab ich klarerweise auch keine Erfahrung damit.



  • Ringding schrieb:

    Ich denke, dass es so sein sollte. Aber nachdem ich keinen Compiler kenne, der das kann, hab ich klarerweise auch keine Erfahrung damit.

    der Comeau kann das.



  • schlüsselwort schrieb:

    **
    Wenn eine Schablonenfunktion von anderen Übersetzungseinheiten aus verwendet werden soll, dann darf sie nicht in einem namenlosen Namensraum definiert werden und muß mit dem Schlüsselwort "export" gekennzeichnet werden (nicht zu verwechseln mit dem ähnlich klingenden Schlüsselwort "extern").
    **

    Muss ich echt einen eigenen Namensraum erschaffen?

    Wo steht das? Mal abgesehen von der Möglichkeit, dass du das "nicht" übersehen hast, vielleicht weißt du einfach nicht was ein namenloser Namensraum ist:

    namespace {
      int x;
    }
    

    Solche Namen sind nur in der aktuellen Übersetzungseinheit sichtbar.



  • Hups ja hab ich überlesen, danke für den Hinweis.

    Zu finden ist die Seite bei google.de , "schlüsselwort export", dritter Treffer!


Anmelden zum Antworten