2013-02-25 18 views

risposta

26

Funzionerà.

ai paragrafi 20.7.1.2.3/8-9 del C++ 11 standard sul modello unique_ptr<> classe:

unique_ptr& operator=(nullptr_t) noexcept;

Effetti: reset().

Postcondizione: get() == nullptr

Ciò significa che la definizione del modello di classe unique_ptr<> comprende un sovraccarico di operator = che accetta un valore di tipo nullptr_t (come nullptr) come suo lato destro; il paragrafo specifica inoltre che l'assegnazione di nullptr a unique_ptr equivale alla reimpostazione di unique_ptr.

Quindi, dopo questa assegnazione, l'oggetto A verrà distrutto.

+0

Vedo. A proposito, solo nullptr ha nullptr_t, questo è il modo in cui è fatto, no? – Zhen

+1

@Zhen: lo standard non lo specifica. Potresti creare una variabile di tipo 'nullptr_t', ma dubito che avrai mai bisogno di farlo. –

Problemi correlati