Orxonox
0.0.5 Codename: Arcturus
|
Typedefs and definitions of FunctorPtr, FunctorMemberPtr, FunctorStaticPtr, and FunctorPointerPtr. More...
Go to the source code of this file.
Namespaces | |
orxonox | |
Die Wagnis Klasse hat die folgenden Aufgaben: | |
Typedefs | |
template<class T > | |
using | orxonox::FunctorMemberPtr = std::shared_ptr< FunctorMember< T >> |
template<class F , class T > | |
using | orxonox::FunctorPointerPtr = std::shared_ptr< FunctorPointer< F, T >> |
using | orxonox::FunctorPtr = std::shared_ptr< Functor > |
using | orxonox::FunctorStaticPtr = std::shared_ptr< FunctorMember< void >> |
Typedefs and definitions of FunctorPtr, FunctorMemberPtr, FunctorStaticPtr, and FunctorPointerPtr.
Instances of orxonox::Functor are usually managed by an std::shared_ptr. This ensures that Functors will be destroyed after usage. To make things easier, there's a typedef that defines FunctorPtr as std::shared_ptr<Functor>.
Because there's not only orxonox::Functor, but also orxonox::FunctorStatic, and orxonox::FunctorMember, the shared pointers need to store them all and also reflect their hierarchy - FunctorStatic and FunctorMember should not be mixed, but both can be converted to Functor. This is achieved by using orxonox::SharedChildPtr.
Because it's not possible to use a typedef for a template, we have to define the helper class FunctorMemberPtr<T> that makes it easier to use FunctorMember. The same is also done for FunctorPointerPtr<T>, which can be converted to both, FunctorMemberPtr<T> as well as FunctorPtr.