OSDN Git Service

[Refactor] #2407 ファクトリクラスにおいてshared_ptr を返している箇所をunique_ptr に差し替えた
authorHourier <66951241+Hourier@users.noreply.github.com>
Fri, 11 Mar 2022 15:51:26 +0000 (00:51 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 12 Mar 2022 12:04:20 +0000 (21:04 +0900)
src/load/item/item-loader-factory.cpp
src/load/item/item-loader-factory.h
src/load/monster/monster-loader-factory.cpp
src/load/monster/monster-loader-factory.h
src/object-use/read/read-executor-factory.cpp
src/object-use/read/read-executor-factory.h

index 5bb8868..a4e866e 100644 (file)
  * @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:
index 9c2d4d2..6ab5a24 100644 (file)
@@ -6,7 +6,7 @@ enum class ItemLoaderVersionType;
 class ItemLoaderBase;
 class ItemLoaderFactory {
 public:
-    static std::shared_ptr<ItemLoaderBase> create_loader();
+    static std::unique_ptr<ItemLoaderBase> create_loader();
 
 private:
     ItemLoaderFactory() = delete;
index 9919c27..52c3ce4 100644 (file)
  * @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:
index 20c1a20..6aed27c 100644 (file)
@@ -8,7 +8,7 @@ struct monster_type;
 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;
index 9ddd14e..1febdf8 100644 (file)
@@ -7,22 +7,22 @@
 #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!");
index 80adf5b..0fded1b 100644 (file)
@@ -7,7 +7,7 @@ class ObjectType;
 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;