diff --git a/include/core/common/wolf.h b/include/core/common/wolf.h index 2553117f39370d0ccc01e4344a14f7a05f1e5180..25e9325fd3b61f425f085bd47e9b788ebd494aa9 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);