- Timestamp:
- Nov 8, 2015, 9:10:30 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/cpp11_v2/src/libraries/core/command/FunctorPtr.h
r10769 r10781 55 55 namespace orxonox 56 56 { 57 /// FunctorPtr is just a typedef of SharedPtr 58 typedef SharedPtr<Functor> FunctorPtr; 59 60 /// It's not possible to use a typedef for FunctorMemberPtr<T>, so we have to create a child-class instead. It inherits all functions from SharedChildPtr, but needs to (re-)implement some constructors. 57 using FunctorPtr = SharedPtr<Functor>; 61 58 template <class T> 62 class FunctorMemberPtr : public SharedChildPtr<FunctorMember<T>, FunctorPtr> 63 { 64 public: 65 inline FunctorMemberPtr() : SharedChildPtr<FunctorMember<T>, FunctorPtr>() {} 66 inline FunctorMemberPtr(FunctorMember<T>* pointer) : SharedChildPtr<FunctorMember<T>, FunctorPtr>(pointer) {} 67 inline FunctorMemberPtr(const SharedPtr<FunctorMember<T>>& other) : SharedChildPtr<FunctorMember<T>, FunctorPtr>(other) {} 68 }; 69 70 /// FunctorStaticPtr is just FunctorMemberPtr with @a T = void 71 typedef FunctorMemberPtr<void> FunctorStaticPtr; 72 73 /// It's not possible to use a typedef for FunctorPointerPtr<T>, so we have to create a child-class instead. It inherits all functions from SharedChildPtr, but needs to (re-)implement some constructors. 59 using FunctorMemberPtr = SharedChildPtr<FunctorMember<T>, FunctorPtr>; 60 using FunctorStaticPtr = FunctorMemberPtr<void>; 74 61 template <class F, class T> 75 class FunctorPointerPtr : public SharedChildPtr<FunctorPointer<F, T>, FunctorMemberPtr<T>> 76 { 77 public: 78 inline FunctorPointerPtr() : SharedChildPtr<FunctorPointer<F, T>, FunctorMemberPtr<T>>() {} 79 inline FunctorPointerPtr(FunctorPointer<F, T>* pointer) : SharedChildPtr<FunctorPointer<F, T>, FunctorMemberPtr<T>>(pointer) {} 80 inline FunctorPointerPtr(const SharedPtr<FunctorPointer<F, T>>& other) : SharedChildPtr<FunctorPointer<F, T>, FunctorMemberPtr<T>>(other) {} 81 }; 62 using FunctorPointerPtr = SharedChildPtr<FunctorPointer<F, T>, FunctorMemberPtr<T>>; 82 63 } 83 64
Note: See TracChangeset
for help on using the changeset viewer.