C++ · Essencial · Inglês · Técnico
nullptr
Literal do C++11 que representa um ponteiro nulo com tipo próprio, std::nullptr_t. Substitui NULL e o número 0 em ponteiros, evitando ambiguidades na sobrecarga de funções.
Onde usar
Em um code review, trocar NULL por nullptr é um ajuste comum. Ele faz a chamada f(nullptr) escolher a sobrecarga de ponteiro em vez da de inteiro.
Em código
void f(int) {}
void f(char*) {}
f(nullptr); // chama f(char*)
// f(NULL) depende da implementaçãoExemplos
Always initialize raw pointers with nullptr.
Sempre inicialize ponteiros brutos com nullptr.
The compiler picked the int overload because someone used NULL.
O compilador escolheu a sobrecarga de int porque alguém usou NULL.
Cuidado
Não use NULL ou 0 para ponteiros em código moderno, pois ambos são inteiros e podem escolher a sobrecarga errada.
Antônimos
NULL