Condividi tramite


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 .