nullptr

A palavra-chave nullptr especifica uma constante do ponteiro nulo do tipo std::nullptr_t, que é conversível em qualquer tipo bruto de ponteiro. Embora você possa usar a palavra-chave nullptr sem incluir nenhum cabeçalho, se o código dela usar o tipo std::nullptr_t, você deverá defini-lo incluindo o cabeçalho <cstddef>.

Observação

A palavra-chave nullptr também é definida em C++/CLI para os aplicativos de código gerenciado e não é intercambiável com a palavra-chave do ISO Standard C++. Se seu código puder ser criado com a opção de compilador /clr, que se destina ao código gerenciado, então use __nullptr em qualquer linha do código onde você deva garantir que o compilador usará a interpretação do C++ nativo. Para obter mais informações, consulte (C++/CLI e C++/CX) nullptr.

Comentários

Evite usar NULL ou zero (0) como constante do ponteiro nulo; nullptr é menos vulnerável ao uso indevido e funciona melhor na maioria das situações. Por exemplo, com func(std::pair<const char *, double>), chamar func(std::make_pair(NULL, 3.14)) causa um erro do compilador. A macro NULL expande para 0, para que a chamada std::make_pair(0, 3.14) retorne std::pair<int, double>, que não é conversível para o tipo de parâmetro std::pair<const char *, double> em func. Chamar func(std::make_pair(nullptr, 3.14)) resulta em uma compilação bem-sucedida porque std::make_pair(nullptr, 3.14) retorna std::pair<std::nullptr_t, double>, que é convertido em std::pair<const char *, double>.

Confira também

Palavras-chave
nullptr (C++/CLI e C++/CX)