C++ 海关;nullptr";,但是如何理解代码呢?

C++ 海关;nullptr";,但是如何理解代码呢?,c++,c++11,templates,nullptr,C++,C++11,Templates,Nullptr,它来自维基百科,如果我们的编译器不支持c++11,我们可以自己实现,如下所示: const class nullptr_t { public: template<class T> inline operator T*() const { return 0; } template<class C, class T> inline operator T C::*() const { return 0; } p

它来自维基百科,如果我们的编译器不支持c++11,我们可以自己实现,如下所示:

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

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

private:
    void operator&() const;
} nullptr = {};
const类nullptr\t
{
公众:
模板
内联运算符T*()常量
{返回0;}
模板
内联运算符tc::*()常量
{返回0;}
私人:
void运算符&()常量;
}nullptr={};
我不能理解上面的代码

----------------------更新------------------

对不起,我没说清楚

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

 template<class C, class T>
    inline operator T C::*() const
        { return 0; }
模板
内联运算符T*()常量
{返回0;}
模板
内联运算符tc::*()常量
{返回0;}
以上代码,我不懂语法。 我以前从未见过这种模板表单(如“运算符tc::*()”)

表示类型为
nullptr\u t
的对象可以转换为指向任何类型(模板参数
t
)的任何类(模板参数
C
)的非静态成员的指针

这两个运算符都是常量,因此无法更改
nullptr\t
对象

表示类型为
nullptr\u t
的对象可以转换为指向任何类型(模板参数
t
)的任何类(模板参数
C
)的非静态成员的指针


这两个运算符都是常量,因此无法更改
nullptr\t
对象

您不了解哪一部分?代码正在定义一个名为
nullptr
const
变量,类型为
nullptr\t
。这两个隐式转换运算符允许
nullptr
可以在任何可以使用指针的地方使用。您不了解什么部分?代码正在定义一个名为
nullptr
const
变量,类型为
nullptr\t
。这两个隐式转换运算符允许
nullptr
在任何可以使用指针的地方使用。
template<class T>
inline operator T*() const
    { return 0; }
template<class C, class T>
inline operator T C::*() const
    { return 0; }