C++0x nullptr の実装

以下はライブラリでの nullptr の実装案です

const class {
public:
    template <class T>
    operator T*() const
    {
        return 0;
    }

    template <class C, class T>
    operator T C::*() const
    {
        return 0;
    }

private:
    void operator&() const;

} nullptr = {};
// <cstddef>
namespace std {
    typedef decltype(nullptr) nullptr_t;
}
int* p = nullptr;

if (p == nullptr)
    ...


追記:
ライブラリでの実装だと、nullptrをキーワードにできないのでこの提案は却下されました。



N2431 A name for the null pointer: nullptr (revision 4)

C++0x nullptr

C++0x言語拡張まとめ