/Zc:zeroSizeArrayNew (配列のメンバー new/delete の呼び出し)

/Zc:zeroSizeArrayNew コンパイラ オプションは、オブジェクトの長さ 0 の配列に対してメンバー newdelete を呼び出します。

構文

$

解説

/Zc:zeroSizeArrayNew コンパイラ オプションにより、仮想デストラクターを使ったクラス型のオブジェクトの長さ 0 の配列に対するメンバー newdelete の呼び出しが有効になります。 この動作は標準に準拠しています。 このコンパイラ オプションは Visual Studio 2019 バージョン 16.9 の新機能であり、すべてのコンパイラ モードで既定で有効になっています。 以前は、Visual Studio 2019 バージョン 16.9 より前のバージョンでコンパイルされたコードでは、コンパイラは仮想デストラクターを含むクラス型のオブジェクトの長さ 0 の配列に対してグローバルの newdelete を呼び出していました。

/Zc:zeroSizeArrayNew オプションを使うと、以前の非準拠動作に依存していたコードに破壊的変更を引き起こす可能性があります。 以前の動作を復元するには、/Zc:zeroSizeArrayNew- コンパイラ オプションを使います。

このコンパイラ オプションを Visual Studio で使用するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加のオプション] で、/Zc:zeroSizeArrayNew または /Zc:zeroSizeArrayNew- を追加します。 [OK] または [適用] を選択して、変更内容を保存します。

関連項目

/Zc (準拠)