Nullptr

nullptr是C++11语言标准用来表示空指针的常量值,可以指派給任意類型的指標變數。部分編譯器將之視為一個關鍵字,例如Visual Studio,部分使用舊標準的C++編譯器則未實作需要自行定義:
const class nullptr_t
{
public:
template
inline operator T*() const
{ return 0; }

template
inline operator T C::*() const
{ return 0; }

private:
void operator&() const;
} nullptr = {};

C++语言标准规定: 值0或std::nullptr_t类型的纯右值是空指针常量(null pointer constant)。可以通过空指针转换(null pointer conversion)成为某个类型的空指针值(null pointer value)。

C++语言标准还规定,在实参个数多于形参个数时(即可变参数个数的函数调用,可用va_arg来访问),多出来的实参如果是std::nullptr_t类型,则转化为(void *)0供函数访问。

std::nullptr_t定义在标准头文件中。但实际上在源程序中不包含该头文件仍可以正常使用nullptr_t类型与nullptr对象。

nullptr_t
nullptr_t是字面常數nullptr的資料型態。它是一種特殊的類型,並不是一種指標類型也不是指向任何種變數型態的指標類型。nullptr_t位於std命名空間中,且定義於標頭檔中。可透過is_null_pointer來檢查物件是否為這種型態。

參見
*空指標

参考文献

评论 (0)

  • 还没有评论,来抢沙发吧。