コンテナの要素へのスマートポインタを作りたい

C(ry先生が3秒で(ry これだからC++は(ry
4
はるえす@イカのフレンズ @Rayerd

boost::ptr_vector<>の要素を指すスマートポインタってないんですか?

2010-07-17 02:58:19
Akso de la Malbono @Cryolite

@Rayerd boost::ptr_vector<> が boost::shared_ptr に所有されているならば boost::shared_ptr 使うのが手っ取り早いかと.

2010-07-17 03:01:23
はるえす@イカのフレンズ @Rayerd

.@Cryolite shared_ptr<ptr_vector<T>>じゃなくてptr_vector<T> a; smart_ptr<T> e = a[0]; の smart_ptr<> が欲しいんですが

2010-07-17 03:06:01
はるえす@イカのフレンズ @Rayerd

ptr_vector<>が所有権を集中保持しているのだから,えーと,なんだ?

2010-07-17 03:08:54
はるえす@イカのフレンズ @Rayerd

ptr_vector<T> a; T* e = a[0]; の e に期待していることはなんだろうか

2010-07-17 03:13:36
Akso de la Malbono @Cryolite

@Rayerd http://ideone.com/nnuxd と同じテクニックが ptr_vector にも使えるので.このテクニックの最大の特徴は q が普通の shared_ptr<int> と見分けが付かないところにあります (従って ABI 互換性なども普通にパスする)

2010-07-17 03:14:05
Akso de la Malbono @Cryolite

まー,コンテナ側を shared_ptr で保持していないといけないという前提条件が厳しいんだけれども.

2010-07-17 03:15:00
はるえす@イカのフレンズ @Rayerd

あとでやってみます.ありがとう.眠いので理解できんw RT @Cryolite: @Rayerd http://ideone.com/nnuxd と同じテクニックが ptr_vector にも使えるので.このテクニックの最大の特徴は q が普通の shared_pt(ry

2010-07-17 03:18:18
くっくっkura 🇯🇵🦀 @PG_kura

shared_ptr のその使い方はすばるセンセの blog に分かりやすい解説があった気がするんだけどどこだったか

2010-07-17 03:18:38
はるえす@イカのフレンズ @Rayerd

wktk RT @PG_kura: shared_ptr のその使い方はすばるセンセの blog に分かりやすい解説があった気がするんだけどどこだったか

2010-07-17 03:21:05
Akso de la Malbono @Cryolite

@Rayerd p の指している先の所有権を保持する + ポインタとして参照する先を (*p)[0] として q を作る,という意味です.

2010-07-17 03:23:40
くっくっkura 🇯🇵🦀 @PG_kura

あった。ここの http://bit.ly/7EBXt0 「応用的な使い方」のところを参照です! RT @Rayerd: wktk RT @PG_kura: shared_ptr のその使い方はすばるセンセの blog に分かりやすい解説があった気がするんだけどどこだったか

2010-07-17 03:24:14
はるえす@イカのフレンズ @Rayerd

さんくす! RT @PG_kura: あった。ここの http://bit.ly/7EBXt0 「応用的な使い方」のところを参照です! RT @Rayerd: wktk RT @PG_kura: shared_ptr のその使い方はすばるセンセの blog に分かりやすい解説があ

2010-07-17 03:26:38
はるえす@イカのフレンズ @Rayerd

@Cryolite (*p)[i]でptr_vector<T>のi番の要素を所有できるというわけですね

2010-07-17 03:27:33
Akso de la Malbono @Cryolite

@Rayerd 直接所有しているのはあくまでコンテナですね.コンテナを所有していて,コンテナが要素を所有しているので,間接的には要素を所有していますけれど.これによって,スマートポインタにおける大原則「『所有しているもの』と『参照しているもの』が一致している」も保証されます.

2010-07-17 03:31:01
くっくっkura 🇯🇵🦀 @PG_kura

あらゆるこだわりに答えてくれます。そう、C++ ならね。

2010-07-17 03:32:07
SKS rep @repeatedly

ロングゲートから「マスタリング Cryolite」が出るのはいつなんだろうか

2010-07-17 03:35:51
はるえす@イカのフレンズ @Rayerd

http://bit.ly/brcidK make_shared使うだけで効率よくなるとかw なんなんだC++は!

2010-07-17 03:36:25