nullptr
Le nullptr
mot clé spécifie une constante de pointeur Null de type std::nullptr_t
, qui est convertible en n’importe quel type de pointeur brut. Bien que vous puissiez utiliser le mot clé nullptr
sans inclure d’en-têtes, si votre code utilise le type std::nullptr_t
, vous devez le définir en incluant l’en-tête <cstddef>
.
Remarque
Le nullptr
mot clé est également défini dans C++/CLI pour les applications de code managé et n’est pas interchangeable avec le mot clé ISO Standard C++. Si votre code peut être compilé à l’aide de l’option du compilateur, qui cible le /clr
code managé, utilisez __nullptr
dans n’importe quelle ligne de code dans laquelle vous devez garantir que le compilateur utilise l’interprétation C++ native. Pour plus d’informations, consultez nullptr
(C++/CLI et C++/CX).
Notes
Évitez d’utiliser NULL
ou de zéro (0
) comme constante de pointeur Null ; nullptr
est moins vulnérable à une mauvaise utilisation et fonctionne mieux dans la plupart des situations. Par exemple, étant donné func(std::pair<const char *, double>)
, l'appel à func(std::make_pair(NULL, 3.14))
provoque une erreur du compilateur. La macro NULL
se développe sur 0
, de sorte que l’appel std::make_pair(0, 3.14)
retourne std::pair<int, double>
, qui n’est pas convertible en std::pair<const char *, double>
type de paramètre dans func
. L'appel à func(std::make_pair(nullptr, 3.14))
entraîne une compilation correcte, car std::make_pair(nullptr, 3.14)
retourne std::pair<std::nullptr_t, double>
, qui peut être convertie en std::pair<const char *, double>
.