Spec-Zone.ru › C++

nullptr, литерал нулевого указателя (начиная с C++11)

Синтаксис

nullptr

Пояснение

Ключевое слово nullptr обозначает литерал нулевого указателя. Это prvalue типа 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:2024):
    • 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
(псевдоним типа)
Документация по C для nullptr

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

Spec-Zone.ru

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