error: ‘NULL’ was not declared in this scope

后端 未结 6 1978
暗喜
暗喜 2020-12-04 09:42

I get this message when compiling C++ on gcc 4.3

error: ‘NULL’ was not declared in this scope

It appears and disappears and I don\'t know w

6条回答
  •  遥遥无期
    2020-12-04 10:43

    GCC is taking steps towards C++11, which is probably why you now need to include cstddef in order to use the NULL constant. The preferred way in C++11 is to use the new nullptr keyword, which is implemented in GCC since version 4.6. nullptr is not implicitly convertible to integral types, so it can be used to disambiguate a call to a function which has been overloaded for both pointer and integral types:

    void f(int x);
    void f(void * ptr);
    
    f(0);  // Passes int 0.
    f(nullptr);  // Passes void * 0.
    

提交回复
热议问题