Espacios de nombres
Variantes
Acciones

Literal de puntero nullptr

De cppreference.com
< cpp‎ | language
 
 
 
 

Contenido

[editar] Sintaxis

nullptr (desde C++11)

[editar] Explicación

La palabra clave nullptr denota el literal de puntero. Es un prvalue de tipo std::nullptr_t. Existen conversiones implícitas de nullptr al valor de puntero nulo de cualquier tipo puntero y cualquier tipo puntero a miembro. Existen conversiones similares para cualquier constante de puntero nulo, que incluye valores de tipo std::nullptr_t así como la macro NULL.


[editar] Ejemplo

Demuestra que nullptr retiene el significado de puntero nulo incluso si ya no es un literal.

#include <cstddef>
#include <iostream>
 
template<class T>
constexpr T clone(const T& t)
{
    return t;
}
 
void g(int* i)
{
    std::cout << "Se ha llamado a la función g\n";
}
 
int main()
{
    g(nullptr);        // de acuerdo
    g(NULL);           // de acuerdo
    g(0);              // de acuerdo
 
    g(clone(nullptr);  // de acuerdo
//  g(clone(NULL);     // ERROR: cero no-literal no puede ser una constante de puntero nulo
//  g(clone(NULL);     // ERROR: cero no-literal no puede ser una constante de puntero nulo
}

Salida:

Se ha llamado a la función g
Se ha llamado a la función g
Se ha llamado a la función g
Se ha llamado a la función g

[editar] Palabras clave

nullptr

[editar] Referencias

  • El estándar C++23 (ISO/IEC 14882:2023):
  • 7.3.12 Pointer conversions [conv.ptr]
  • El estándar C++20 (ISO/IEC 14882:2020):
  • 7.3.12 Pointer conversions [conv.ptr]
  • El estándar C++17 (ISO/IEC 14882:2017):
  • 7.11 Pointer conversions [conv.ptr]
  • El estándar C++14 (ISO/IEC 14882:2014):
  • 4.10 Pointer conversions [conv.ptr]
  • El estándar C++11 (ISO/IEC 14882:2011):
  • 4.10 Pointer conversions [conv.ptr]

[editar] Véase también

Constante de puntero nulo definido por la implementación.
(constante de macro) [editar]
(C++11)
El tipo del literal nullptr.
(typedef) [editar]