nullptr

ключове слово, введене в C++11 для описання константи нульового вказівника


nullptr — ключове слово, введене в C++11 для описання константи нульового вказівника. Ця константа має тип std::nullptr_t.

nullptr є константою r-value[en][1].

До введення nullptr, для обнулення вказівників використовувався макрос NULL, зі значенням 0 — цілого типу. Це викликало проблеми (наприклад, при перевантаженні функцій). Тип nullptr — std::nullptr_t, що вирішує ці проблеми. Існують неявні перетворення nullptr до нульового вказівника будь-якого типу і до bool (зі значенням false), але не до цілочисельних типів[2].

З метою забезпечення зворотної сумісності, константу 0 також можна використовувати як нульовий вказівник.

char *pc = nullptr;   // правильно
int  *pi = nullptr;   // правильно
bool  b  = nullptr;   // правильно. b = false.
int   i  = nullptr;   // помилка

foo(nullptr);         // викликає foo(char *), а не foo(int);

ПриміткиРедагувати