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 = {};


京公网安备 11010502036488号