Errore del compilatore C2076
Non è possibile usare un elenco di inizializzatori racchiusi tra parentesi graffe in un'espressione nuova il cui tipo contiene 'auto/decltype(auto)'
Se un auto
identificatore di tipo viene visualizzato nella sequenza di identificatore di un nuovo identificatore di tipo o nell'identificatore di tipo di un'espressione new
, l'espressione deve contenere un inizializzatore del formato ( assignment-expression )
. Il compilatore deduce l'identificatore di tipo dall'oggetto assignment-expression
nell'inizializzatore. ad esempio:
new auto(42); // new allocates int
auto c = new auto('a'); // c is of type char*, new allocates char
new (auto*)(static_cast<short*>(nullptr)); // allocates type short*
Per risolvere questo problema, usare le parentesi per racchiudere il valore di inizializzazione dell'espressione new
.