Поделиться через


Ошибка компилятора C2076

Список инициализатора с скобками нельзя использовать в новом выражении, тип которого содержит "auto/decltype(auto)"

auto Если описатель типа отображается в последовательности описателя нового идентификатора типа или идентификатора new типа выражения, выражение должно содержать инициализатор формы( assignment-expression ). Компилятор выводит идентификатор типа из assignment-expression инициализатора. Например,

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*

Чтобы устранить эту проблему, используйте скобки, чтобы заключить значение new инициализации выражения.