C++11 では、ガベージ コレクターへのインターフェイスが導入されました。私が見たところ、GC と通信するための標準化された方法 (たとえば、 declare_no_pointers ) を提供し、偽装ポインターがどのように処理されるかについての情報を取得します (たとえば、get_pointer_safety )。
ただし、C++11 には、手動で解放する必要のない未加工のメモリ ブロックを割り当てる標準化された方法がまだありません。デストラクタが呼び出されなくても、それが役立つユースケースがあります。1 つの例は、複雑なクリーンアップ プロトコルに対処する必要なく、(Herb Sutter が言及したように) 効率的な同時データ構造を実装することです。
ここまでは順調ですね。私の質問 (GC ライブラリ開発者ではなく、通常の開発者の観点から):
新しい C++11 GC インターフェースが役に立った実際の例はありますか?
少なくとも私の観点からは、世界は変わっていません。GC が必要な場合でも、Boehm GCなどの非標準ライブラリを見つけて、それを統合して使用する方法を学ぶ必要があります。新しい標準化されたインターフェースは、その点ではあまり役に立ちません。また、移植性の問題も解決しません。
(長期的には、C++11 標準で定義された共通インターフェイスがうまくいくことを願っています。ただし、私の質問は、近い将来のみを対象としています。)