Utilisez la version tableau :
auto testData = std::unique_ptr<unsigned char[]>{ new unsigned char[16000] };
Ou avec c++14, une meilleure forme ( VS2013 l'a déjà ):
auto testData = std::make_unique<unsigned char[]>( 16000 );
Utilisation du T[]
spécialisation :
std::unique_ptr<unsigned char[]> testData(new unsigned char[16000]());
Notez que, dans un monde idéal, vous n'auriez pas à utiliser explicitement new
pour instancier un unique_ptr
, en évitant un écueil de sécurité d'exception potentiel. Pour cela, C++14 vous fournit le std::make_unique
modèle de fonction. Voir cet excellent GOTW pour plus de détails. La syntaxe est :
auto testData = std::make_unique<unsigned char[]>(16000);