nullptr_t 实现

const class nullptr_t{
    public: 
        // 定义类型转换操作符,使nullptr_t 可转为任意非类成员指针类型  
        template<class T> 
        inline operator T*() const{ return 0; }

        // 重载类型转换操作符,使 nullptr_t 可以转换为类 C 中任意的指针类型(数据成员指针/函数成员指针)      
        // 对类中数据成员的指针,T 将被推导为数据成员的类型 eg: int (X::*); 此时 T 为 int,C 为 X  
        // 对类中函数成员的指针,T 将被推导为函数成员的类型 eg: int (X::*)(int); 此时T 等效于: typedef int (T)(int)
        template<class C, class T> 
        inline operator T C::*() const { return 0; }
    private:
        void operator&() const;
} nullptr = {};
全部评论

相关推荐

测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务