Literal de puntero nullptr
De cppreference.com
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.
Ejecuta este código
#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
[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) | |
(C++11) |
El tipo del literal nullptr. (typedef) |