/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
В дополнительных параметрах добавьте
/Zc:zeroSizeArrayNew
или/Zc:zeroSizeArrayNew-
. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.