- 125 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 08:13:56.08 ID:dLwYQ6PK.net]
- おはようございますみなさま、質問させてください
ユーザー定義クラスを作成し、循環参照を防止するためweak_ptrをメンバに持たせています。 そして任意の処理でshared_ptrをweak_ptrに代入し使用したいと思っておりました。 しかし、メンバ関数内部でweak_ptrを使用すると、式にはポインタ型が必要です、旨のエラーが出てしまいます。 調べてみたところ、lock()でshared_ptrに再度権利委譲するとshared_ptr側から動くのですが、私が初心者な事もあり何か釈然としません(我が儘でしょうか……) 一度weak_ptrに落とし込んだものを再度shared_ptrに戻す部分が引っかかっているのだと思います(気にしすぎですかね) そこでお聞きしたいのですが、クラス内部で動的に定めたいと思っているweak_ptrを使う際に、これ以外の方法はありますでしょうか? それとも上記の通りlock()で一時的なshared_ptrに束縛した方がいいのでしょうか? 朝から長文失礼しました
|

|