2017-06-08 3 views
0

私はa description of delete[]を見ていたし、それは言う:定義されていない動作は、例外を投げないと定義された関数で例外を引き起こすことはできますか?

例外安全
ノースロー保証:この関数は例外をスローすることはありません。

しかし、それは追加されます:PTRの無効な値が未定義の動作を引き起こすこと

注意してください。

私はUBに例外をスローすることを含めることができ、保証は有効なポインタにのみ有効だと思うが、私はちょうど私がチェックすると思った。

+6

定義されていない動作を定義しますか? –

+0

はい、すべての賭けは未定義の動作でオフになっています。 – Galik

+0

未定義の動作は何でもできます。 – Barmar

答えて

2

"未定義の動作"とは、言語定義がコードの内容を知らせないことを意味します。そう、はい、何かが起きる可能性があります。結局のところ、ルールはありません...(まあ、あなたのコンパイラはルールを提供するかもしれませんが、それに頼ることは移植性がありません)。

関連する問題