- C++相談室 part118 [転載禁止]©2ch.net
450 :デフォルトの名無しさん[sage]:2015/07/23(木) 22:42:54.17 ID:hSpOI8hk - 規格は読んでないけど,実際に分割コンパイルなんかで翻訳単位が異なると
静的オブジェクトのコンストラクタが呼び出される順番にクセがあって, 結果が変わることがあるよ. ヘッダ https://ideone.com/cuhP7T ヘッダの実装 https://ideone.com/n3Gq50 メイン関数:グローバル版とローカル版で結果が異なる https://ideone.com/V1vXF5 ローカル版だと期待通りだけど,グローバル版だと 最後に静的オブジェクトが作られるから0になっちゃう. でも 「静的オブジェクトのコンストラクタ呼び出しが明確に〜」 って書き方は変・・・なのかな? 静的オブジェクトの定義もグローバルに書いてるから, 確実に最後に処理されるメイン処理が予想通りなのは当たり前で, むしろグローバルなとこにBの変数書くのがおかしい,みたいな.
| - C++相談室 part118 [転載禁止]©2ch.net
457 :デフォルトの名無しさん[sage]:2015/07/23(木) 23:46:51.81 ID:hSpOI8hk - 観測用に設置したcoutが使えるかどうかは本題にまったく関係ないんですけど・・・
ていうかそれ言い出したら標準ライブラリ自体,自立処理系で 使えるヤツしか使えなくなります. <cstddef> <cfloat> <limits> <climits> <cstdint> 以下略
|
|