How to define nullptr for supporting both C++03 and C++11?

c++, c++03, c++11, nullptr

Solution

In C++11, `nullptr` is of type `nullptr_t`. One of its big advantages compared to `NULL` (or to `0` would say Bjarne since he does not like macros) is that between these two functions:

void foo(char*);
void foo(int);

`foo(nullptr)` will call the `char*` overload but `foo(NULL)` will call the `int` overload. So your solution may work in most of the cases, but you may have errors with functions overload.

Problem

Possible Duplicate: “Backporting” nullptr to C++-pre-C++0x programs How to define `nullptr` for supporting both C++03 and C++11? Does below code is compiled with both C++03 and C++11 compiles without change the meaning of nullptr in C++11 compiler? ``` #include <cstddef> #if !defined(nullptr) #define nullptr NULL #endif ```

Original source

Related problems