Inizializzazione puntatore univoco

4

Qual è l'inizializzazione corretta di un puntatore intelligente?

std::unique_ptr<Class> ptr(std::make_unique<Class>());

o

std::unique_ptr<Class> ptr = std::make_unique<Class>();

Esiste una copia implicita con il secondo utilizzo?

    
posta bbalchev 22.03.2016 - 00:03
fonte

1 risposta

7

I due sono equivalenti.

Il secondo richiederebbe (ufficialmente) una copia implicita se (e solo se) il tipo di inizializzatore differisce dal tipo di oggetto inizializzato. In realtà, anche in questo caso la maggior parte dei compilatori può normalmente generare codice che elude la copia.

    
risposta data 22.03.2016 - 00:11
fonte

Leggi altre domande sui tag