問題タブ [shared-ptr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
85670 参照

c++ - shared_ptr から通常の ptr を取得しますか?

shared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe)) へのポインタを必要とするCスタイルの関数を呼び出す必要があるようなものがありますType。からどうやって入手するのshared_ptr

0 投票する
6 に答える
62843 参照

c++ - boost::shared_ptr の NULL ポインタ?

次と同等のものは何ですか:

を扱うときboost::shared_ptr?以下のコードですか?

注: 私はそのようなオブジェクトの多くを押し戻す可能性があります。nullPtrどこかでグローバル静的オブジェクトを宣言する必要がありますか? そうすれば、そのうちの 1 つだけを構築する必要があります。

0 投票する
4 に答える
54541 参照

c++ - boost::shared_ptr を意図的に削除するには?

私は多くのboost::shared_ptr<MyClass>オブジェクトを持っていますが、ある時点で、意図的deleteにそれらのいくつかにメモリを解放したいと考えています。(その時点で、指定されたMyClassオブジェクトはもう必要ないことがわかっています。) どうすればそれを行うことができますか?

delete()で取得した生のポインターで呼び出すことはできないと思いますget()

get_deleter(shared_ptr<T> const & p)で関数を見たことがありますがboost::shared_ptr、使い方がわかりません。また、すぐ横に実験的と書かれています。(私は Boost 1.38 を持っていると思います。)

たぶんboost::shared_ptr、変数に新しい空を割り当てるだけですか?古い値を破棄して削除する必要があります。

0 投票する
4 に答える
42932 参照

c++ - boost::shared_ptr を使用した static_cast?

static_castwithに相当するものは何boost::shared_ptrですか?

つまり、次のようにどのように書き換える必要がありますか

を使用するshared_ptr場合

0 投票する
5 に答える
23772 参照

c++ - ブーストされています shared_ptrスレッドセーフ?

について質問がありboost::shared_ptr<T>ます。

スレッドがたくさんあります。

Q1

Thread_Aが最新であることを気にしない場合nowResource、コードのこの部分に問題はありますか?

つまり、 Thread_BSetResource()が完全ではない場合、 Thread_Aは間違ったスマート ポイントを取得しGetResource()ます。

Q2

スレッドセーフとはどういう意味ですか?

リソースが最新かどうかを気にしないshared_ptr<CResource> nowResource場合、 がリリースされたときにプログラムがクラッシュするか、それともnowResource問題によって が破壊されshared_ptr<CResource>ますか?

0 投票する
3 に答える
1887 参照

shared-ptr - ATL CAutoPtr と STL std::auto_ptr の違いは?

MFC でコードを書いていて、自動ポインターを使用したいと考えています。同じことをしているように見える 2 つの異なるクラスに出くわしました:CAutoPtrおよびstd::auto_ptr2 つの異なる実装について人々の考えは?

さらに、私はあることを知っていますstd::tr1::shared_ptrshared_ptrATL/MFC に似たものはありますか?

0 投票する
7 に答える
27107 参照

c++ - 参照カウントスマートポインターの参照カウントはどのように機能しますか?

言い換えれば、実装はどのようにカウントを追跡するのでしょうか?

shared_ptrキーがポインタのアドレスで、値が参照の数であるすべてのインスタンスからアクセスできる、マップのようなオブジェクトが維持されていますか? を実装する必要がある場合shared_ptr、これが最初に頭に浮かんだアイデアです。

これらの参照カウント スマート ポインターの場合、メモリ リークの可能性はありますか? もしそうなら、どうすればそれらを避けることができますか?

0 投票する
12 に答える
8086 参照

c++ - shared_ptrを使用するときにサイクルを検出する方法

shared_ptrは、Boostライブラリの参照カウントスマートポインタです。

参照カウントの問題は、サイクルを破棄できないことです。これをC++で解決するにはどうすればよいのでしょうか。

「サイクルを作成しない」、「weak_ptrを使用する」などの提案はしないでください。

編集

サイクルを作成することがわかっている場合は問題がないので、weak_ptrを使用するという提案は好きではありません。また、実行時にshared_ptrsを生成した場合、コンパイル時にサイクルが発生することもわかりません。

だから、私は特にそのような答えを持たないように頼んだので、weak_ptrを使用している答えを自己削除してください...