assert() nicht in std::?



  • Um es gleich zu sagen, ich kenne den Unterschied zwischen include <stdlib.h> und <cstdlib>, baer mir ist da gerade etwas komisches aufgefallen:

    Wenn ich <cassert> include, sollte assert() ja eigentlich in std:: liegen, das tut es aber nicht.
    Es ist, als würde ich "using namespace std;" davor schreiben, oder gleich assert.h includen.

    Im der Datei cassert steht auch nichts von namespace std, es wird bloß ein #pragma gesetzt und assert.h includet.

    Schreibt da der Standard was besonderes vor, oder stimmt da irgendwas beim GCC nicht?



  • assert ist ein Makro und deshalb kann es nicht in einem Namespace sein.



  • Oh, das wusste ich nicht.

    Naja, danke^^


Anmelden zum Antworten