誰かがこのニーズを満たすようなものを実行しているのだろうかと思います。存在するかどうか:1つのオブジェクトが所有するスマートポインタがアクセスを許可する
オブジェクトAにはオブジェクトBが含まれています。ポインタを使用してそのBへのアクセスをクライアントに提供したい場合があります(0かもしれない、またはクライアントがコピー可能である必要があり、 )。クライアントは、オブジェクトCと呼ぶことができます。通常、完全な開発者であれば、Bのポインターの生涯セマンティクスに違反しないように注意深く書かれていますが、実際には完璧ではありません。半分の時間はかなりかわいそうだ。
私たちが望むのは、オブジェクトCが "共有"所有権ではなく、オブジェクトAが有効でない状況を認識するのに十分スマートなオブジェクトBへのポインタを持つことです。破壊されたり、オブジェクトBが破壊されたりします。このポインタがもはや有効でないときにアクセスすると、アサーション/例外/何でも発生します。
つまり、私は安全かつ明確な方法でデータへのアクセスを共有したいが、元の所有権セマンティクスは保持したい。現在、オブジェクトの1つが所有している共有ポインタを見つけることができなかったので、私はshared_ptrをそのようなことの代わりに使用していました。しかし、私は明確なオーナーシップと共有/弱いポインタが本当にそれを提供しないことを望む。
このスマートポインタを動的に割り当てられたメモリ領域へのポインタを保持するのではなく、メンバ変数にアタッチすることができればさらに便利です。
もし存在しなければ、私はそれを作るつもりです。だから、誰かがすでにそこに何かをリリースしているかどうかを最初に知りたいのです。
そして、私は参考文献やポインタのようなものがこの種のものを提供していることを認識しています...もっとスマートなものを探しています。
まあ、誰も足を伸ばして1つを指しているので、私はそれがそこにないと仮定しています。ちょうど見るためにLoki図書館をチェックするかもしれない。これまでの回答はOKで、おそらくweak_ptrの使い方を知らない人にとっては役に立ちますが、私は実際にこの目的のために特別に設計されたものを探しています。 –