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.