独自の型から子を管理するクラスが付与され、各子はその親に戻るポインターを持ちます。
class Class {
std::array<std::shared_ptr<Class>, 4> children;
std::weak_ptr<Class> parent;
}
上記のコードのようなAweak_ptrは、共有 ptr を介して初期化する必要があるため、機能しません。
void initChild() {
subtrees[0] = std::make_shared<Class>(std::shared_ptr<Class>(this));
}
これは明らかに削除thisされ、エラーになります。
raw を使用せずに親への弱い参照を持つ可能性はありpointersますか、それが唯一の選択肢でしょうか?