- C++相談室 part122 [無断転載禁止]©2ch.net
24 :デフォルトの名無しさん[sage]:2016/01/25(月) 11:21:09.85 ID:aGf3VXDj - >>22
規格で保証がある範囲を考えれば全部不定になり得るところ。 何が知りたいのかわかんないけど、自分で試せば?
|
- C++相談室 part122 [無断転載禁止]©2ch.net
50 :デフォルトの名無しさん[sage]:2016/01/25(月) 22:02:04.00 ID:aGf3VXDj - >>45-46
>26 じゃないけど、 構造体のパディングバイトが全ビット 0 になる保証はあるんだけど、 int を 0 に初期化したときにパディングビットも含めて全ビットが 0 になる保証は見当たらないんだ。 パディングビットがある環境も少ないだろうし、あるとしても numeric_limits<int> とか調べれば事前に 有無が確認できるとは思うけど。
|
- C++相談室 part122 [無断転載禁止]©2ch.net
51 :デフォルトの名無しさん[sage]:2016/01/25(月) 22:06:48.30 ID:aGf3VXDj - >>32
> Tのコンストラクタが例外を投げると、fは走らずに例外がcatchされる。そしてthisが宙ぶらりんになって誰からも開放出来なくなる。 ... > 一方でshared_ptr(new T());だとTのコンストラクタがコケるとメモリリークが起こる。 んなこたーない。 http://www.kijineko.co.jp/tech/superstitions/memory-leak-at-dynamic-creation-fail.html
|
- C++相談室 part122 [無断転載禁止]©2ch.net
52 :デフォルトの名無しさん[sage]:2016/01/25(月) 22:11:13.46 ID:aGf3VXDj - >>39
> A *a(int i) {return as.add(new A(i));} add() の中の push_back() で例外飛んだらリークする。 変な独自コンテナラッパーなんか作らないでおとなしくスマートポインタ使えばいいのに。
|
- C++相談室 part122 [無断転載禁止]©2ch.net
56 :デフォルトの名無しさん[sage]:2016/01/25(月) 22:57:30.92 ID:aGf3VXDj - >>55 うん。
|
- C++相談室 part122 [無断転載禁止]©2ch.net
59 :デフォルトの名無しさん[sage]:2016/01/25(月) 23:59:58.70 ID:aGf3VXDj - >>58
そんなところ。 Cでも保証は無いよね。あったところでC++で「保証」とはいえないんだけど。
|