掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
デストラクタを仮想関数にしたとき動き(2) (ID:68522)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
仕様書の「未定義」という言葉は「仕様書が定めていない」ではなくてきっちり決まっている。 1.3.12 未定義の動作(undefined-behavior) 間違ったプログラム断片または間違ったデータに対して生じうる動作 例・その状況を完全に無視して何が起こるかわからない 例・適宜動作する(その処理系作者は文書を用意し説明すること) 例・翻訳または実行を終了する ということで VC++ の動作は規格書に完全合致だ。 ここでいう「何が起こるかわからない」というのは ・プログラマの勝手な期待通りに動作する ・予測不能な動作を行う(いわゆる鼻から悪魔って奴だ) ということで。 そのコード、 VC++ 以外では絶対に使用しないということ? VC++での動きと他の処理系での動きは異なる可能性が大なわけで、言語規格書にて未定義であっても ・VC++でならうまく(=プログラマの勝手な期待通りに)動く ・***社の###コンパイラでは(期待通りに)動かない ということであってもかまわない、ということで?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.