* @details ItemLoaderBaseは純粋仮想関数を含むので参照を返す必要がある.
* (値を返す設計はコンパイルエラー)
*/
-std::shared_ptr<ItemLoaderBase> ItemLoaderFactory::create_loader()
+std::unique_ptr<ItemLoaderBase> ItemLoaderFactory::create_loader()
{
auto version = get_version();
switch (version) {
case ItemLoaderVersionType::LOAD50:
- return std::make_shared<ItemLoader50>();
+ return std::make_unique<ItemLoader50>();
case ItemLoaderVersionType::LOAD51:
// dummy yet.
default:
class ItemLoaderBase;
class ItemLoaderFactory {
public:
- static std::shared_ptr<ItemLoaderBase> create_loader();
+ static std::unique_ptr<ItemLoaderBase> create_loader();
private:
ItemLoaderFactory() = delete;
* @details MonsterLoaderBaseは純粋仮想関数を含むので参照を返す必要がある.
* (値を返す設計はコンパイルエラー)
*/
-std::shared_ptr<MonsterLoaderBase> MonsterLoaderFactory::create_loader(PlayerType *player_ptr)
+std::unique_ptr<MonsterLoaderBase> MonsterLoaderFactory::create_loader(PlayerType *player_ptr)
{
auto version = get_version();
switch (version) {
case MonsterLoaderVersionType::LOAD50:
- return std::make_shared<MonsterLoader50>(player_ptr);
+ return std::make_unique<MonsterLoader50>(player_ptr);
case MonsterLoaderVersionType::LOAD51:
// dummy yet.
default:
class MonsterLoaderBase;
class MonsterLoaderFactory {
public:
- static std::shared_ptr<MonsterLoaderBase> create_loader(PlayerType *player_ptr);
+ static std::unique_ptr<MonsterLoaderBase> create_loader(PlayerType *player_ptr);
private:
MonsterLoaderFactory() = delete;
#include "object/tval-types.h"
#include "system/object-type-definition.h"
-std::shared_ptr<ReadExecutorBase> ReadExecutorFactory::create(PlayerType *player_ptr, ObjectType *o_ptr, bool known)
+std::unique_ptr<ReadExecutorBase> ReadExecutorFactory::create(PlayerType *player_ptr, ObjectType *o_ptr, bool known)
{
if (o_ptr->tval == ItemKindType::SCROLL) {
- return std::make_shared<ScrollReadExecutor>(player_ptr, o_ptr, known);
+ return std::make_unique<ScrollReadExecutor>(player_ptr, o_ptr, known);
}
if (o_ptr->fixed_artifact_idx == ART_GHB) {
- return std::make_shared<GbhShirtReadExecutor>();
+ return std::make_unique<GbhShirtReadExecutor>();
}
if (o_ptr->fixed_artifact_idx == ART_POWER) {
- return std::make_shared<RingOfPowerReadExecutor>();
+ return std::make_unique<RingOfPowerReadExecutor>();
}
if (o_ptr->tval == ItemKindType::PARCHMENT) {
- return std::make_shared<ParchmentReadExecutor>(player_ptr, o_ptr);
+ return std::make_unique<ParchmentReadExecutor>(player_ptr, o_ptr);
}
throw("Invalid item is specified; this can't be read!");
class PlayerType;
class ReadExecutorFactory {
public:
- static std::shared_ptr<ReadExecutorBase> create(PlayerType *player_ptr, ObjectType *o_ptr, bool known);
+ static std::unique_ptr<ReadExecutorBase> create(PlayerType *player_ptr, ObjectType *o_ptr, bool known);
private:
ReadExecutorFactory() = delete;