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


/Zc:zeroSizeArrayNew (Вызов участника нового или удаления в массивах)

Параметр /Zc:zeroSizeArrayNew компилятора вызывает член new и delete массивы объектов нулевой длины.

Синтаксис

/Zc:zeroSizeArrayNew[-]

Замечания

Параметр /Zc:zeroSizeArrayNew компилятора позволяет вызывать член new и delete массивы объектов типов классов нулевой длины с виртуальными деструкторами. Это поведение соответствует стандарту. Этот параметр компилятора является новым в Visual Studio 2019 версии 16.9 и включен по умолчанию во всех режимах компилятора. Ранее в коде, скомпилированном версиями до Visual Studio 2019 версии 16.9, компилятор вызвал глобальный new и delete на массивах нулевой длины объектов типов классов с виртуальными деструкторами.

Этот /Zc:zeroSizeArrayNew параметр может привести к критическому изменению кода, который опирался на предыдущее несоответствующее поведение. Чтобы восстановить предыдущее поведение, используйте параметр компилятора /Zc:zeroSizeArrayNew- .

Установка параметра компилятора в Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. В дополнительных параметрах добавьте /Zc:zeroSizeArrayNew или /Zc:zeroSizeArrayNew-. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.

См. также

/Zc (Соответствие)