C ++ 11は、ポインタ値が他の値から「安全に派生」する条件を定義します。実装は、「厳密なポインターの安全性」の下で動作するように指定する場合があります。その場合、これらのルールに従って派生されていないポインターは無効になる可能性があります。
私が読んだように、実装で使用される安全モデルを取得できますが、それはコンパイラーで修正されています(コマンドラインスイッチで可変になる可能性があります)。
ポインターを非表示にするコードがあるとすると、そのようなコードはガベージコレクターの素朴なボルトでは絶対に実行されません。ただし、コレクター(私のような)とBoehmは、特定のオブジェクト内のポインターを見つけるためのフックを提供します。
特にJudyArrayについて考えています。これらは必然的にキーを隠すデジタルトライです。私の質問は基本的に、そのようなデータ構造を使用すると、C++11でプログラムの動作が未定義になるかどうかです。
私はそうしないことを望んでいます(Judyアレイは他のすべてよりも優れているため)。また、たまたま..ガベージコレクターを実装するためにそれらを使用しています。ただし、「最小要件」は一般的にはまったく機能せず、C ++適合モデルに関する最初の議論(英国とオーストラリアによる)では強く反対されたため、私は懸念しています。パラメトリック要件の方が優れています。しかし、C ++ 11 GC関連のテキストは両方のビットのように見えるので、私は混乱しています!