Compartir a través de


Error del compilador C2076

No se puede usar una lista de inicializadores entre llaves en una nueva expresión cuyo tipo contiene "auto/decltype(auto)"

Si un auto especificador de tipo aparece en la secuencia del especificador de un nuevo identificador de tipo o el identificador de tipo de una new expresión, la expresión debe contener un inicializador del formulario ( assignment-expression ). El compilador deduce el identificador de tipo de en assignment-expression el inicializador. Por ejemplo,

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*

Para resolver este problema, use paréntesis para incluir el valor de inicialización de la new expresión.