トップページ > プログラム > 2016年01月27日 > gqKHFo+S

書き込み順位&時間帯一覧

13 位/200 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000011114



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part122 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part122 [無断転載禁止]©2ch.net
142 :デフォルトの名無しさん[sage]:2016/01/27(水) 20:44:21.08 ID:gqKHFo+S
>>129
だからtry-catchなんかしない。>>94,108のとおりRAIIで解決する。

なんというか10年前にタイムスリップした感がある。↓読んでくれ。
https://www.google.co.jp/search?q=C%2B%2B+%E3%82%B3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%BF+%E4%BE%8B%E5%A4%96
C++相談室 part122 [無断転載禁止]©2ch.net
163 :デフォルトの名無しさん[sage]:2016/01/27(水) 21:46:53.21 ID:gqKHFo+S
>>150
> B() try : _id(GetId()), _a(_id)
> {
> cout << "B:B" << _id << endl;
> }
> catch(int ex)
> {
> cout << "B:B" << _id << " exception " << ex << endl;

このcatch内でのメンバ変数 _id の参照は未定義動作になる。
15.3 [except.handle] p10
> Referring to any non-static member or base class of an object in the
> handler for a function-try-block of a constructor or destructor for that
> object results in undefined behavior.
C++相談室 part122 [無断転載禁止]©2ch.net
178 :デフォルトの名無しさん[sage]:2016/01/27(水) 22:45:20.30 ID:gqKHFo+S
>>177
隙だらけすぎるだろ。

> 記述量の割に得られる対価が例外に対する備えだけ、
基本的なところは標準ライブラリでカバーされてるんだけど、記述量ってどんなコード想定してんの?
それに、例外以外にreturnやbreakにも利くよ。

> RAIIなプログラムのメモリ消費量はなかなか安定に達しないから(∵確保したり開放したりで断片化が進ん
確保解放のパターンがRAIIで規定されるわけないし、使い方でどうにでもなるでしょ。

> 意図とはうらはらに、実は第三者に対してメモリリークが無いことの証拠提示がヒジョーに厄介なプログラムに
RAII使わない、生でdeleteやらなんやら書いてるコードよりはマシでしょ。悪化する例があるなら見たい。
C++相談室 part122 [無断転載禁止]©2ch.net
196 :デフォルトの名無しさん[sage]:2016/01/27(水) 23:52:26.77 ID:gqKHFo+S
>>180
10年ぐらい前にはこんな爺さんがよく居たもんだが、まだ居るのか・・・。

> いちいちstd::shared_ptr<T>とか打ちたくないし、pSomeSmartPtr.get()ですらちょっと嫌
慣れる。どうしても嫌なら好きに using でもしとけばいい。 get() なんて使わんでいい。

> メモリ直接ならまだ標準ライブラリでカバーされるが、OSがハンドルを返す場合はwrapperを書かねばならない
自分で書くケースがあるのはそうだが、稀だろ。
稀じゃないなら、個別に破棄処理を漏れなく書いて回るよりも一度書けば済むRAIIのほうがマシ。

> メンバ変数を全部wrapperかスマポにせねばならない
> これは苦行以外の何者でもない
std::shared_ptr<T>が打てない状況ならそうかもしれないな。
でもそれは個人的な事情であってRAIIの問題じゃない。

> そしてクラスの群れを書く面々のうちの誰か一人がしくじれば、やはりリークする
RAII関係ない。

> returnやbreakについては、例外と違って伝統的な書き方で対処可能
伝統的で且つ面倒な書き方でな。RAIIのほうが楽。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。