Search code examples
c++nullc++11nullptr

Is NULL defined as nullptr in C++11?


Will C++11 implementations define NULLas nullptr?

Would this be prescribed by the new C++ standard?


Solution

  • From the horse's mouth

    C.3.2.4 Macro NULL [diff.null]

    1/ The macro NULL, defined in any of <clocale>, <cstddef>, <cstdio>, <cstdlib>, <cstring>, <ctime>, or <cwchar>, is an implementation-defined C++ null pointer constant in this International Standard (18.2).

    It is up to each implementation to provide its own definition, gcc if I recall correctly defines it to __nullptr for which it has special checks (verifies that it is not used in arithmetic contexts for example).

    So it is possible to define it as nullptr, you will have to check your compiler/Standard Library documentation to see what has been done.