nullptr,指针字面量

来自cppreference.com
< cpp‎ | language

语法

nullptr (C++11 起)

解释

关键词 nullptr 代表指针字面量。它是 std::nullptr_t 类型的纯右值。存在从 nullptr 到任何指针类型及任何成员指针类型的隐式转换。同样的转换对于任何空指针常量也存在,空指针常量包括 std::nullptr_t 的值,以及宏 NULL

示例

演示 nullptr 如何允许经由模板函数转发。

#include <cstddef>
#include <iostream>
 
template<class F, class A>
void Fwd(F f, A a)
{
    f(a);
}
 
void g(int* i)
{
    std::cout << "Function g called\n";
}
 
int main()
{
    g(NULL);           // 良好
    g(0);              // 良好
 
    Fwd(g, nullptr);   // 良好
//  Fwd(g, NULL);  // 错误:不存在函数 g(int)
}

输出:

Function g called
Function g called
Function g called

关键词

nullptr

参阅

实现定义的空指针常量
(宏常量)
(C++11)
空指针字面量 nullptr 的类型
(typedef)

引用

  • C++11 standard (ISO/IEC 14882:2011):
  • 4.10 Pointer conversions [conv.ptr]