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


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

"выражение new", тип которого содержит "auto", должно иметь инициализатор

Если выражение new используется с ключевым словом auto, а по умолчанию задан параметр компилятора /Zc:auto, в выражении new должен быть указан инициализатор.

Исправления данной ошибки

  • Укажите выражение инициализатора для оператора new.

Пример

В следующем примере демонстрируется ошибка C3534. Первое объявление не вызывает ошибку, поскольку содержит прямой инициализатор (0) типа int. Второе объявление вызывает ошибку, так как не содержит инициализатор. В третьем объявлении второе использование ключевого слова auto вызывает ошибку, поскольку оператор new не содержит инициализатор.

// C3534.cpp
// Compile with /Zc:auto
int main()
{
   new auto(0); 
   new auto();          // C3534
   auto x = new auto(); // C3534
   return 0;
}

См. также

Ссылки

auto Keyword

operator new (<new>)