問題タブ [weak-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 投票する
1 に答える
881 参照

c++ - weak_pointer.lock() は、weak_ptr の作成に使用された元の shared_ptr の参照カウントをインクリメントします

私の理解によると、すべての shared_ptr オブジェクトを使用し、循環依存関係がある場合、循環依存問題に弱いポインターが使用されます。ウィーク ポインターは、サイクルを中断するために使用されます。弱いポインターは、共有ポインターを作成する lock() を使用してこれを実現します。

しかし、x->b->a.lock() を呼び出してロックを作成したと仮定すると、x の参照カウントは 2 になり、x がスコープを離れてもメモリ リークが発生しますよね? lock() を使って共有ポインタを作成したところ、ref カウントが 2 になりました。私の理解が正しいかどうか教えてください。

0 投票する
2 に答える
1261 参照

c++ - 元のポインタを削除した後のweak_ptrへのアクセス

以下のコードを実行すると、ランタイム エラーが発生します。

元の共有ポインターを削除した後、ポインターがまだアクセス可能であるかどうか (そうであってはならない) を見つけようとしていました。

0 投票する
1 に答える
207 参照

c++ - 空のweak_ptrを引数としてmap::countを呼び出すのは安全ですか?

初期化されていない空の金庫を呼び出しmap::countても安全ですか?weak_ptr

私はまだ C++ の経験が浅く、これを判断するスキルがありません。

私のアプリケーションでは、 aweak_ptrは a のキーとして保持されてmapおり、値によって最初に見つける必要があります。見つからない場合は、初期化されていないweak_ptrものがreturn編集され、 で使用されmap::countます。

コード

設定

データで探す

発見

0 投票する
1 に答える
2950 参照

c++ - std::set または std::map のキーで weak_ptr を使用しても安全ですか

今日、連想コンテナおよびでのstd::weak_ptrおよびそれらの使用に関して、多くの質問がありました。ウィーク ポインターが期限切れになると未定義の動作になるため、 aで aを使用することは正しくないと述べている投稿が多数あります。これは正しいです?std::owner_lessstd::setstd::mapweak_ptrstd::set

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

c++ - スマートポインタ + サイクル + "->"

時々、ポインターの循環依存が必要であり、循環上のすべてのオブジェクトがそのポインターを使用できる必要があると確信している場合があります (したがって、weak_ptr にすることはできません)。

私の質問は、これは私の設計が悪いということですか?

グラフを実装したい場合はどうすればよいですか? スマート ポインターを使用できますか? グラフには循環がありますが、weak_ptr では "->" を使用できません。私に何ができる?

StackOverflow に関するいくつかの記事、リファレンス、およびトピックを読みましたが、まだスマート ポインターを取得していないようです。本当に、「->」を使用したweak_ptrのバリアントが存在しないのはなぜですか?