次のことを行う必要があるとします(これはC ++標準について説明するための想像上のコードです。したがって、なぜこのように設計するのかについては説明しません。次のようなことで気にしないでください。設計が間違っている。)
T* ptr = new T;
shared_ptr<T> p(ptr);
shared_ptr<T> q(ptr, SomeDeleterThatDoesnotDeleteButDoSomeOtherStuff());
ロジックp
が、そのコピーの一部または一部がのすべてのコピーよりも長持ちすることを保証していると仮定しq
ます。したがって、実際には問題はありません。私の質問は、異なるshared_ptrカウンターが同じアドレスを共有することは、C ++標準によって禁止されていますか?たとえば、C ++標準によってUBとして明示的に記述されていますか?
ありがとう。