Donnerstag, 8. Januar 2009

#include - Hilfe oder Last?

In C++ ist so ziemlich alles eine Wissenschaft. Selbst über das Inkludieren von Headern könnte man ein Studium erfinden... Bis jetzt gab es zigtausend include-Konflikte, Probleme, etc. die durch Herumprobieren der Reihenfolge, Hinzufügen von #include "WinSock2.h", #include "string", #include "list", #include "d3dx9math.h", #include "xtree", ... "gelöst" wurden.
Zum Glück existiert eine Compileroption "/showIncludes" beim Microsoft C++ 2008 - Compiler, die jedes (auch indirekt) inkludiertes File anzeigt. Somit wird klar, dass 220 WinSock-Fehler zum Beispiel deswegen kommen, weil windows.h irgendwo in irgendeinem versteckten File vor WinSock2.h inkludiert wird.
Irgendwie sollte das primitive "include" schön langsam in ein intelligenteres verwandelt werden. Das Übersetzen dauert sowieso endlos lang, also kommts auf diese zusätzliche Prüfung irgendwie auch nicht mehr drauf an!
Weiters wurde herausgefun
den, dass, wenn die Multithreaded-Runtim von Microsoft verwendet wird (eine andere gibt es bei Visual C++ 2008 sowieso nicht mehr) diverse Operationen von Haus aus multithreaded sind und außerdem zum Beispiel der Operator new angeblich thread-safe sein sollte. Das würde erklären, warum bis jetzt kein Fehler zur Laufzeit aufgetreten ist!

Keine Kommentare:

Kommentar veröffentlichen