wo ist die Standardbibliothek DEFINIERT????



  • hoi 🙂

    mal 'ne ganz dumme Frage:

    wo sind eigentlich (beim GCC, unter Linux) die Funktionen der STL (oder der libc) definiert? Die Deklaration find ich ja in Headerfiles, aber wo genau ist denn die Definitiion?

    Oder anderst: gibts die Definition ueberhaupt? Oder linkt mir der Linker heimlich irgend eine statischen Libs ran, ohne dass die Funktionen jemals irgendwo definiert wurden?
    Wo z. B. koennt ich die Definition von printf() finden?



  • Normalerweise sind bei den Compileren die Sourcecodes der Runtimelibrary erhältlich, gerade bei
    Compileren wie gcc. Da findest du alles was suchst
    Schau mal deinen Linkprocess an, man kann da ein Protokollfile zuschalten in dem berichtet wird was
    alles dazugelinkt wird, damit weist du dann auch was statisch gelinkt wird.

    Viel Spaß



  • Die STL ist komplett inline, da musst du die Definitionen nicht suchen 😉



  • operator void schrieb:

    Die STL ist komplett inline, da musst du die Definitionen nicht suchen 😉

    quatsch.



  • operator void schrieb:

    Die STL ist komplett inline, da musst du die Definitionen nicht suchen

    Such mal die allocator in den Headern.



  • Such mal die allocator in den Headern.

    Der Default-Allocator ist ein Template, d.h. der Quellcode muss in irgendeiner Form vorliegen. Da die wenigstens Compiler export unterstützen, wirst du den Default-Allocator normalerweise in Header-Dateien finden.

    Laut C++ Standard kommt der Default-Allocator im Header memory. Beim VC ist es ganz genau der Header xmemory, der aber in memory includiert wird.

    Was genau ist jetzt also deine Aussage?



  • nein schrieb:

    operator void schrieb:

    Die STL ist komplett inline, da musst du die Definitionen nicht suchen 😉

    quatsch.

    Unter der Annahme, dass operator void mit "inline" nicht den C++ Begriff "inline" meint sondern die Tatsache, dass die STL im Quellcode vorliegen muss und unter der Annahme, dass mit STL der Container-Algorithmen-Iteratoren-Teil der C++ Standardbibliothek gemeint ist, ist die Aussage keinesfalls quatsch.



  • Ähm ja - bei mir heißt inline geistig schon nur noch "steht im Header" 🙂 Da will man mal Haare spalten... *grml*



  • bei visual c++ sind aber auch cpp dateien dabei 😡 🤡



  • HumeSikkins schrieb:

    Der Default-Allocator ist ein Template, d.h. der Quellcode muss in irgendeiner Form vorliegen. Da die wenigstens Compiler export unterstützen, wirst du den Default-Allocator normalerweise in Header-Dateien finden.

    Laut C++ Standard kommt der Default-Allocator im Header memory. Beim VC ist es ganz genau der Header xmemory, der aber in memory includiert wird.

    Was genau ist jetzt also deine Aussage?

    Nagut, ich hab diese Aussage etwas voreilig geschlossen. 🙄

    Hmm... ich meine aber das in irgendeinem Buch gelesen zu haben... komisch.



  • die nicht template Sachen, werden aber zu einer Library gelinked. Aber die C++ std Lib basiert ja zum größten Teil auf Templates, wenn man den C kompatiblitäts Part weglässt



  • btw. den libstdc++ Code kann man aber bei http://gcc.gnu.org runterladen, ist eben OpenSource


Anmelden zum Antworten