|
Orxonox
0.0.5 Codename: Arcturus
|
Declaration of Identifier, definition of ClassIdentifier<T>; used to identify the class of an object. More...
#include "core/CorePrereqs.h"#include <cassert>#include <map>#include <set>#include <string>#include <typeinfo>#include <loki/TypeTraits.h>#include "util/Output.h"#include "util/OrxAssert.h"#include "core/object/ObjectList.h"#include "core/object/Listable.h"#include "core/object/Context.h"#include "core/object/Destroyable.h"#include "core/object/WeakPtr.h"#include "IdentifierManager.h"#include "Super.h"Go to the source code of this file.
Classes | |
| class | orxonox::ClassIdentifier< T > |
| The ClassIdentifier is derived from Identifier and holds all class-specific functions and variables the Identifier cannot have. More... | |
| class | orxonox::Identifier |
| The Identifier is used to identify the class of an object and to store information about the class. More... | |
| struct | orxonox::Identifier::InheritsFrom |
| helper class to manually define inheritance More... | |
Namespaces | |
| orxonox | |
| Die Wagnis Klasse hat die folgenden Aufgaben: | |
Functions | |
| std::ostream & | orxonox::operator<< (std::ostream &out, const std::set< const Identifier * > &list) |
| Lists the names of all Identifiers in a std::set<const Identifier*>. More... | |
| template<class T , class U > | |
| ORX_FORCEINLINE T | orxonox::orxonox_cast (U *source) |
| Casts on object of type Identifiable to any derived type that is registered in the class hierarchy. More... | |
Declaration of Identifier, definition of ClassIdentifier<T>; used to identify the class of an object.
An Identifier "identifies" the class of an object. It contains different information about the class: Its name and ID, a list of all instances of this class, a factory to create new instances of this class, and more.
It also contains information about the inheritance of this class: It stores a list of the Identifiers of all parent-classes as well as a list of all child-classes. These relationships can be tested using functions like isA(), isChildOf(), isParentOf(), and more.
Every Identifier is in fact a ClassIdentifier<T> (where T is the class that is identified by the Identifier), Identifier is just the common base-class.
Example:
1.8.11