From 4448ad0bf1181e347eeccbe3eb0ad166ecdd1478 Mon Sep 17 00:00:00 2001
From: jvallve <jvallve@iri.upc.edu>
Date: Mon, 11 Apr 2022 19:04:44 +0200
Subject: [PATCH] macro for already declared object

---
 include/core/common/wolf.h | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/include/core/common/wolf.h b/include/core/common/wolf.h
index 2553117f3..25e9325fd 100644
--- a/include/core/common/wolf.h
+++ b/include/core/common/wolf.h
@@ -197,12 +197,19 @@ struct MatrixSizeCheck
 //      TYPEDEFS FOR POINTERS, LISTS AND ITERATORS IN THE WOLF TREE
 /////////////////////////////////////////////////////////////////////////
 
+#define WOLF_DECLARED_PTR_TYPEDEFS(Name) \
+        typedef std::shared_ptr<Name>          Name##Ptr; \
+        typedef std::shared_ptr<const Name>    Name##ConstPtr; \
+        typedef std::weak_ptr<Name>            Name##WPtr; \
+        typedef std::weak_ptr<const Name>      Name##ConstWPtr; \
+
 #define WOLF_PTR_TYPEDEFS(ClassName) \
         class ClassName; \
-        typedef std::shared_ptr<ClassName>          ClassName##Ptr; \
-        typedef std::shared_ptr<const ClassName>    ClassName##ConstPtr; \
-        typedef std::weak_ptr<ClassName>            ClassName##WPtr; \
-        typedef std::weak_ptr<const ClassName>      ClassName##ConstWPtr; \
+        WOLF_DECLARED_PTR_TYPEDEFS(ClassName); \
+
+#define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
+        struct StructName; \
+        WOLF_DECLARED_PTR_TYPEDEFS(StructName); \
 
 #define WOLF_LIST_TYPEDEFS(ClassName) \
         class ClassName; \
@@ -223,10 +230,6 @@ struct MatrixSizeCheck
         typedef ClassName##ConstWPtrList::const_iterator   ClassName##ConstWPtrListConstIter; \
         typedef ClassName##ConstWPtrList::reverse_iterator ClassName##ConstWPtrListRevIter; \
 
-#define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
-        struct StructName; \
-        typedef std::shared_ptr<StructName>          StructName##Ptr; \
-        typedef std::shared_ptr<const StructName>    StructName##ConstPtr; \
 
 // NodeBase
 WOLF_PTR_TYPEDEFS(NodeBase);
-- 
GitLab