私はXeoによる古い熟考型消去テクニックに出くわし、そのコードをどのように修正してと.std::unique_ptr'ersstd::shared_ptr'ers
投稿のコードはここにあります。何かを含むものが供給されunique_ptrs、データshared_ptr'ersがガベージになると、コードはコンパイルされません。私が試したのは、テンプレート化された基本クラスから継承されたクラスだったので、少し複雑だったのかもしれません。さて、これは主に好奇心からです。たとえば、Boost.Anyが使用できないstd::vector場合など、複雑なオブジェクトを格納するときに便利になる可能性があるため、(一般的には)難しいのではないかと思いました。
編集: テスト中にコードにバグがあることに気付きましshared_ptr'ersたunique_ptr'ers. また、このタイプの消去された新しいインスタンスAny_Virtual(Xeo によって提供されるコードのように) を、たとえばstd::unique_ptr'ers.
その場合、質問は次のようになると思います。
Any_Virtualで動作するように を修正するにはどうすればよいstd::unique_ptrですか?- オブジェクト、スマート ポインターを保持する
std::vector<Any_Virtual>場所、またはオブジェクトのどちらが優れたデザインになるでしょうか? それとも問題ですか?Any_Virtualstd::vector<std::unique_ptr<Any_Virtual>>