5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C++相談室 part99

894 :デフォルトの名無しさん:2013/04/04(木) 02:59:09.26
smart_ptrを使ったオブジェクトの数珠繋ぎで質問。
 class N {
  shared_ptr<N> p_;
  N(shared_ptr<N> const&amp; p) : p_(p) {}
 };
 shared_ptr<N> v(new N(shared_ptr<N>()); // ルートは親なし
 for (int i=0; i<T; ++i) {
  shared_ptr<Node>(new Node(v)).swap(v); // 前のノードが親
 }
みたいにvを葉とする一本鎖を作った後、v.reset()で全ノードを連鎖的に解放したいのですが、
深さTが大きいと解放の連鎖が途中で止まってしまいます。(Tが小さいとうまくいく)
原因が分かる方いますか?

192 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)