Pages

dimanche 13 janvier 2013

nullptr et std::nullptr_t

Dans les nouveaux mots-clef du C++11 voyons aujourd'hui nullptr.

Étant un mot-clef, il fait partie intégrante du langage mais son type (std::nullptr_t) est défini dans l'en-tête <cstddef>.

nullptr indique comme son nom l'indique un pointer nul. Il est beaucoup plus parlant que NULL ou 0.
Il permet également de lever les ambiguïtés comme le montre cet exemple:

void f(long);
void f(int*);

int main()
{
  f(0); //ambigu
  f(NULL); //ambigu ou autres erreurs
  f(nullptr);
}

Pour finir, nullptr ce cast implicitement en tout type de pointer.

int * p = nullptr;

Aucun commentaire: