掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
デストラクタを仮想関数にしたとき動き(2) (ID:68526)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> その仕様をどう設定しようとMSの自由だと思います。 > ただ、どうなっているかが知りたいんです。 > MSのマニュアルとか探してみますね。 コンパイラ屋さんも、将来の変更に際して互換性には配慮するわけで、 規格上undefined behaviorであっても、自分のとこで明確に文書化したものは、 極力維持しようという制約が出てくるのではないかと思われます。 # まぁ元がundefined behaviorですし、さくっと挙動を変わっても怒る気はありませんが、 # 世の万人がみんなそんな物分りとは思えませんし…。 文書を要求するimplementation-definedとは違って、 undefined behaviorの実際の動作は確かに処理系に依存するものの 文書化して保証する義務も義理もないですし、 たいてい探しても文書はないと思いますけれど… 経験上、ReleaseとDebugの挙動に大きな差異がある場合(今回みたいなのを含め)、 たいていはundefined behaviorの範囲に落ち込んでいて、 挙動が違っておかしくない部分で挙動が違う。文書など当然ないことが多いです。 > そういう前提で構いません。今 MSVS2008 や MSDev6.0 で落ちる理由が知りたいのですから。 技術的な話でいえば、yoh2さんの書かれた説明はあり得ると思います。 本当にそうか調べてみたいなら当該処理をアセンブリで追ってみればいいのでは。 動作保証上の話で言えば「言語仕様として保証のないコードを書いた結果、落ちる」で 概ね終了だと思いますし。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.