オブジェクトの有効期間を管理するクラスTileManagerがあるため、オブジェクトに shared_ptr を保持します。
class TileManager {
private:
std::vector<std::shared_ptr<const Tile>> tiles;
}
これで、 TileManagerによって管理されるオブジェクトへの非所有参照を保持する別のクラスMapができました。
class Map {
private:
std::vector<std::weak_ptr<const Tile>> tiles;
}
私の問題は、 MapクラスがTileへのスマートポインターを操作できるようにしたくないということです。したがって、ベクトルconst内のポインターを作成したいと思います。
class Map {
private:
std::vector<const std::weak_ptr<const Tile>> tiles;
}
残念ながら、const オブジェクトを STL コンテナーに入れることはできません。
誰でも解決策を知っていますか?もしかして全然違うデザイン?