nullptr — ключевое слово, введенное в C++11 для описания константы нулевого указателя. Её тип — std::nullptr_t.

nullptr является литералом.

До введения nullptr для обнуления указателей использовался макрос NULL со значением 0 — целым типом. Это вызывало проблемы (например, при перегрузке функций). Тип nullptr — std::nullptr_t, что решает эти проблемы. Существуют неявные преобразования nullptr к нулевому указателю любого типа и к bool (со значением false), но не к целочисленных типам.

В целях обеспечения обратной совместимости константа 0 также может использоваться в качестве нулевого указателя.

void foo(char *); void foo(int);

char *pc = nullptr; // верно int *pi = nullptr; // верно bool b = nullptr; // верно. b = false. int i = nullptr; // ошибка

foo(nullptr); // вызывает foo(char *), а не foo(int);

Примечания

Категория:Указатели Категория:Нововведения стандарта C++11