/Zc:zeroSizeArrayNew
(配列のメンバー new/delete の呼び出し)
/Zc:zeroSizeArrayNew
コンパイラ オプションは、オブジェクトの長さ 0 の配列に対してメンバー new
と delete
を呼び出します。
構文
$
解説
/Zc:zeroSizeArrayNew
コンパイラ オプションにより、仮想デストラクターを使ったクラス型のオブジェクトの長さ 0 の配列に対するメンバー new
と delete
の呼び出しが有効になります。 この動作は標準に準拠しています。 このコンパイラ オプションは Visual Studio 2019 バージョン 16.9 の新機能であり、すべてのコンパイラ モードで既定で有効になっています。 以前は、Visual Studio 2019 バージョン 16.9 より前のバージョンでコンパイルされたコードでは、コンパイラは仮想デストラクターを含むクラス型のオブジェクトの長さ 0 の配列に対してグローバルの new
と delete
を呼び出していました。
/Zc:zeroSizeArrayNew
オプションを使うと、以前の非準拠動作に依存していたコードに破壊的変更を引き起こす可能性があります。 以前の動作を復元するには、/Zc:zeroSizeArrayNew-
コンパイラ オプションを使います。
このコンパイラ オプションを Visual Studio で使用するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
[追加のオプション] で、
/Zc:zeroSizeArrayNew
または/Zc:zeroSizeArrayNew-
を追加します。 [OK] または [適用] を選択して、変更内容を保存します。