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?
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.
Leggi altre domande sui tag c++ c++11 initialization smart-pointer