[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 11/29 08:20 / Filesize : 51 KB / Number-of Response : 241
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++14/C++1y



1 名前:デフォルトの名無しさん mailto:sage [2013/10/28(月) 01:00:22.34 ]
The C++ Standards Committee
www.open-std.org/JTC1/SC22/WG21/

Wikipedia
https://en.wikipedia.org/wiki/C%2B%2B14

C++11/C++1y 18
toro.2ch.net/test/read.cgi/tech/1365073520/

231 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:38:48.13 ]
newして返したboost::shared_ptrと、
boost::shared_ptrで確保した、boost::shared_ptrを返した時。
特に片方が共同所有権としてつかわれ、
片方がEventの委譲用とかよくありがちじゃん。

232 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 18:42:03.66 ]
それで何か問題になるのか

233 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 19:47:52.61 ]
>>232
二重delete

234 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 21:00:11.72 ]
長文失礼
shared_ptrのオブジェクトの管理領域は次のようになっている
管理領域の参照カウンタ、オブジェクトの参照カウンタ、オブジェクトへのポインタ、デリータへのポインタ
ここで、shared_ptrは管理領域、オブジェクト両方のカウンタを増減させる。 weak_ptrは管理領域のカウンタのみを変更する。
shared_ptrの破棄によってオブジェクトのカウンタが0になったとき、オブジェクトは解放される。
しかし、管理領域は全てのweak_ptrが破棄されるまで生存する
そして、weak_ptrからshared_ptrを構築する際には、shared_ptrの管理領域へのポインタをweak_ptrが指す管理領域へのポインタへと設定している

235 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 21:02:36.06 ]
長すぎと言われた、連レスすまん
enable_shared_from_thisは内部にweak_ptrを持っていて、shared_ptrのコンストラクタはenable_shared_from_thisを継承したクラスに対しては特殊な動作、すなわち内部のweak_ptrに管理領域へのポインタを設定する動作をする
shared_from_this関数は内部のweak_ptrからshared_ptrを構築する関数で、前述のように同じ管理領域を指すポインタが新たに構築される
全てのスマートポインタが同じ管理領域を指しているので、二重解放は起こらない

236 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 01:04:05.46 ]
>>231
> newして返したboost::shared_ptr
わからん。何を new ?返すってどこからどこに?
> boost::shared_ptrで確保
わからん。 shared_ptr に何かを「確保」する機能なんて無いよね?

さっぱりわからん。

237 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 10:41:28.04 ]
>>231 >>233
こいつはたぶんshared_ptrそのものを理解してない

238 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 19:18:57.03 ]
普通に使えば普通に使えるライブラリを
浅知恵で細工して可読性もパフォーマンスもセキュリティもぶち壊す

C++ではよくあること

239 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 22:25:36.50 ]
そういや shared_ptr を使っているインスタンスに対してVisitorパターンだったかやってみようとしたら
途中で生ポインタに変わっちゃうんであきらめたことがあった

class Hage : public Element
{
virtual void accept(Visitor &v){ v.visit(this); } // <- このとき
};

enable_shared_from_this ってのを知っていたらうまいことできたんだろうか



240 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 01:14:30.49 ]
うん






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<51KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef