De Paragraphes 20.7.1.2.3/8-9 du C++11 Standard à propos de la unique_ptr<> modèle de classe:
unique_ptr& operator=(nullptr_t) noexcept;
Effets: reset().
Postcondition: get() == nullptr
Cela signifie que la définition de modèle de classe unique_ptr<> comprend une surcharge de operator = qui accepte une valeur de type nullptr_t (comme nullptr) que son côté droit; le paragraphe précise également que l'attribution d' nullptr à un unique_ptr est équivalent à la réinitialisation de la unique_ptr.
Ainsi, après cette mission, votre A objet sera détruit.
Je vois. BTW, seulement nullptr a nullptr_t, c'est la façon dont c'est fait, n'est-ce pas? La norme ne spécifie pas cette. Vous pouvez créer une variable de type nullptr_t, mais je doute que vous aurez jamais besoin pour le faire.
Il travaillera.
De Paragraphes 20.7.1.2.3/8-9 du C++11 Standard à propos de la
unique_ptr<>
modèle de classe:Cela signifie que la définition de modèle de classe
unique_ptr<>
comprend une surcharge deoperator =
qui accepte une valeur de typenullptr_t
(commenullptr
) que son côté droit; le paragraphe précise également que l'attribution d'nullptr
à ununique_ptr
est équivalent à la réinitialisation de launique_ptr
.Ainsi, après cette mission, votre
A
objet sera détruit.La norme ne spécifie pas cette. Vous pouvez créer une variable de type
nullptr_t
, mais je doute que vous aurez jamais besoin pour le faire.OriginalL'auteur Andy Prowl