私は参照カウンターのテクニックは知っていますが、マークスイープのテクニックについては、今日「プログラミング言語の概念」という本を読んで初めて知りました。
本によると:
ガベージ コレクションの元のマーク スイープ プロセスは、次のように動作します。ランタイム システムは、要求に応じてストレージ セルを割り当て、必要に応じてセルからポインターを切断します。ストレージの再利用 (ガベージの蓄積を許可する) に関係なく、使用可能なすべてのセルが割り当てられるまで続けます。この時点で、マーク スイープ プロセスが開始され、ヒープ内に残っているすべてのガベージが収集されます。プロセスを容易にするために、すべてのヒープ セルには、収集アルゴリズムで使用される追加のインジケーター ビットまたはフィールドがあります。
私の限られた理解では、C++ ライブラリのスマート ポインターは参照カウント手法を使用しています。この種のスマート ポインターの実装を使用する C++ のライブラリはあるのでしょうか。また、この本は純粋に理論的なものであるため、実装がどのように行われるかを視覚化することはできませんでした. このアイデアを示す例は非常に価値があります。私が間違っている場合は、私を修正してください。
ありがとう、