Usa la versione dell'array :
auto testData = std::unique_ptr<unsigned char[]>{ new unsigned char[16000] };
O con c++14, una forma migliore ( VS2013 ce l'ha già ):
auto testData = std::make_unique<unsigned char[]>( 16000 );
Utilizzando il T[]
specializzazione:
std::unique_ptr<unsigned char[]> testData(new unsigned char[16000]());
Nota che, in un mondo ideale, non dovresti usare esplicitamente new
per istanziare un unique_ptr
, evitando una potenziale trappola per la sicurezza delle eccezioni. A tal fine, C++14 ti fornisce il std::make_unique
modello di funzione. Vedi questo eccellente GOTW per maggiori dettagli. La sintassi è:
auto testData = std::make_unique<unsigned char[]>(16000);