Is NULL defined as nullptr in C++11?

Martin Ba picture Martin Ba · Aug 26, 2011 · Viewed 11.6k times · Source

Will C++11 implementations define NULLas nullptr?

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

Answer

Matthieu M. picture Matthieu M. · Aug 26, 2011

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.