Spec-Zone.ru › C++

nullptr, литерал указателя (с C++11)

Синтаксис

nullptr (с C++11)

Объяснение

Ключевое слово nullptr обозначает литерал указателя. Это справочное значение типа std::nullptr_t. Существуют явные преобразования из nullptr в значение нулевого указателя любого типа указателя и любого типа указателя на член. Аналогичные преобразования существуют для любой константы нулевого указателя, которая включает значения типа std::nullptr_t а также макрос NULL.

Ключевые слова

nullptr

Пример

Демонстрирует, что nullptr сохраняет значение константы нулевого указателя, даже если она больше не является литералом.

#include <cstddef>
#include <iostream>
 
template<class T>
constexpr T clone(const T& t)
{
    return t;
}
 
void g(int*)
{
    std::cout << "Function g called\n";
}
 
int main()
{
    g(nullptr);        // Fine
    g(NULL);           // Fine
    g(0);              // Fine
 
    g(clone(nullptr)); // Fine
//  g(clone(NULL));    // ERROR: non-literal zero cannot be a null pointer constant
//  g(clone(0));       // ERROR: non-literal zero cannot be a null pointer constant
}

Вывод:

Function g called
Function g called
Function g called
Function g called

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2023):
    • 7.3.12 Преобразования указателей [conv.ptr]
  • Стандарт C++20 (ISO/IEC 14882:2020):
    • 7.3.12 Преобразования указателей [conv.ptr]
  • Стандарт C++17 (ISO/IEC 14882:2017):
    • 7.11 Преобразования указателей [conv.ptr]
  • Стандарт C++14 (ISO/IEC 14882:2014):
    • 4.10 Преобразования указателей [conv.ptr]
  • Стандарт C++11 (ISO/IEC 14882:2011):
    • 4.10 Преобразования указателей [conv.ptr]

См. также

NULL
определяемый реализацией литерал нулевого указателя
(макрос-константа)
nullptr_t
(C++11)
тип литерала нулевого указателя nullptr
(typedef)
Документация C для nullptr

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/language/nullptr

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API