Compartilhar via


Erro do compilador C2076

Uma lista de inicializadores entre chaves não pode ser usada em uma nova expressão cujo tipo contém 'auto/decltype(auto)'

Se um auto especificador de tipo aparecer na sequência do especificador de um novo identificador de tipo ou no identificador de tipo de uma new expressão, a expressão deverá conter um inicializador do formulário ( assignment-expression ). O compilador deduz o identificador de assignment-expression tipo do inicializador. Por exemplo,

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 esse problema, use parênteses para incluir o valor de inicialização da new expressão.