`  === Using NULL as a pure-specifier ===   Whether 0 or NULL should be used where a null pointer constant is required is a style issue, and open to debate. It is however, irrelevant to the changes being made to the example source code, because a pure-specifier has nothing to do with pointers at all. The claim that 0 would not be fully portable is exactly backwards.  As stated in my initial edit summary, a pure-specifier shall always be `` = 0``.ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §9.2 Class members [class.mem] On certain implementations, ``= NULL`` may compile, if NULL happens to be #defined to 0, It may just as well be #defined to (2-2) or 0L,ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §18.1 Types [lib.support.types] para. 4ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages - C++ §4.10 Pointer conversions [conv.ptr] para. 1 which is not a valid pure-specifier, even if some compilers may (erroneously) accept 0L or 0x0.http://gcc.gnu.org/ml/gcc-patches/2004-02/msg02318.html Again, a pure-specifier is completely unrelated to null pointer constants, and must be `` = 0``.     `