Custom nullptr_t class
At the moment, your implementation allows

auto&amp; p = nullptr;


This is forbidden in C++11 as nullptr is an rvalue.  You also do not allow the following:

auto p = nullptr;
auto pp = &amp;p;


While C++11 does allow it.  You are also missing overloads for comparison operators.

A simple workaround would be to remove the operator&amp; overload and add a macro:

#define nullptr (nullptr_t())


Also, I'd generally use struct X { ... } const x; instead of const struct X { ... } x;.