Lokales include



  • Hallo

    Darf man laut Standard das?

    //File02.cpp
    namespace
    {
      #include <cstdlib>
    }
    void free(void* ptr)
    {
      std::free(ptr);
    }
    
    //File01.cpp
    #include "File02.cpp"
    int main()
    {
      //free nutzen ohne den Rest aus cstdlib zu haben.
    }
    

    MfG, EOutOfResources

    PS: Das ist ein Beispiel zum Prinzip, nicht zur Nutzung von free !


  • Mod

    Nein.

    C++ Standard schrieb:

    A translation unit shall include a header only outside of any external declaration or definition, and shall include the header lexically before the first reference to any of the entities it declares in that translation unit.

    Das Zitat ist etwas aus dem Zusammenhang gerissen, es bezieht sich nur auf die Standardbibliothek, mit anderen Headern darfst du machen was du möchtest. Wobei für die meisten Bibliotheken aber aus guten Gründen die gleichen Bedingungen gelten.

    Außerdem hoffe ich doch, dass das mit dem include einer cpp-Datei nur ein Flüchtigkeitsfehler war.

    Und diese Fragen die du in letzter Zeit stellt, machen mir Angst. Da braut sich was zusammen. Ich erwarte eine Bibliothek von geradezu epischer Unbenutzbarkeit.



  • SeppJ schrieb:

    Außerdem hoffe ich doch, dass das mit dem include einer cpp-Datei nur ein Flüchtigkeitsfehler war.

    Nein. Das habe ich absichtlich gemacht, da das ein Beispiel ist und ich keine Lust hatte, das noch in Deklaration und Definition zu trennen...
    EDIT: Ich weiss natürlich schon, wie es eigentlich geht...

    SeppJ schrieb:

    Und diese Fragen die du in letzter Zeit stellt, machen mir Angst. Da braut sich was zusammen. Ich erwarte eine Bibliothek von geradezu epischer Unbenutzbarkeit.

    😃


Anmelden zum Antworten