At least C++ Standard (ISO/IEC 14882:2003(E)) states:
18.1 Types [lib.support.types]
Common definitions.
Header <cstddef> (Table 15):
[tabel with definitions follows...]
The contents are the same as the Standard C library header <stddef.h>, with the following changes:
The macro NULL is an implementation-defined C + + null pointer constant in this International Standard
(4.10).180)
180) Possible definitions include 0 and 0L, but not (void*)0.
C.2.2.3 Macro NULL [diff.null]
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.1).
And this is what Stroustrup states:
http://www.research.att.com/~bs/bs_faq2.html#null
Greetings,
Ovanes