[過去ログ]
Boostを語れゴラァ part3 (1001レス)
上
下
前
次
1-
新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
599
: 2007/01/11(木)16:28
AA×
>>592
[
240
|
320
|480|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
599: [sage] 2007/01/11(木) 16:28:02 >>592 他に,対象のオブジェクトを参照している最中に (そのオブジェクトを指している shared_ptr が全て消えることで) 突然そのオブジェクトが死んでしまうような事態を回避することができます. (この問題はマルチスレッドプログラムで特に顕著だと思いますけれど, シングルスレッドプログラムでも論理的にはありえるケースです) void process( weak_ptr< Obj > wp ) { if( shared_ptr< Obj > p = wp.lock() ){ // このスコープ内では, (たとえば他の実行スレッドの動作によって) // p の指しているオブジェクトが削除されるようなことはない } else{ // wp が指しているオブジェクトが死んでいる場合. // ここでどうするかは何を実装するかによります. // wp の参照先が常に生存していることが不変条件ならば, // 571さんの書いているように論理エラーを通知する (例外を送出する) ことに // なるでしょうし,参照先のオブジェクトが死んでいることを検出して // 他のアクションを取るようなことも,場合によっては想定されます. } } http://echo.5ch.net/test/read.cgi/tech/1158991211/599
他に対象のオブジェクトを参照している最中に そのオブジェクトを指している が全て消えることで 突然そのオブジェクトが死んでしまうような事態を回避することができます この問題はマルチスレッドプログラムで特に顕著だと思いますけれど シングルスレッドプログラムでも論理的にはありえるケースです このスコープ内では たとえば他の実行スレッドの動作によって の指しているオブジェクトが削除されるようなことはない が指しているオブジェクトが死んでいる場合 ここでどうするかは何を実装するかによります の参照先が常に生存していることが不変条件ならば さんの書いているように論理エラーを通知する 例外を送出する ことに なるでしょうし参照先のオブジェクトが死んでいることを検出して 他のアクションを取るようなことも場合によっては想定されます
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 402 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
ぬこの手
ぬこTOP
0.039s