Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/mobject/placement.hpp"
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location where the MObject is supposed to be within the Session/Model.
any specific placements are supposed to be derived from Placement<MObject>, or an intermediary interface, in case the second template parameter is used.
Placements are copyable (like values), but may be distinguished by their identity (reference semantics), which is based on an hash-ID .
Placements are defined to form a hierarchy, thereby mirroring the relations between their referents to some degree. This allows for building APIs targeted at specific kinds of MObjects, and at the same time allows a specific placement to stand-in when just a unspecific Placement<MObject> is required.
MO | the (compile time) type of the referent |
B | immediate base class of this placement |
Public Member Functions | |
_Id | getID () const |
< More... | |
MO * | operator-> () const |
Friends | |
class | session::MObjectFactory |
Protected Types | |
typedef _Parent::template Id< MO > const & | _Id |
typedef Placement< B > | _Parent |
typedef _Parent::_SmartPtr | _SmartPtr |
typedef _Parent::Deleter | Deleter |
Protected Member Functions | |
Placement (MO &mo, Deleter killer) | |
|
inline |
<
Definition at line 251 of file placement.hpp.
Referenced by PlacementIndex_test::checkContentsEnumeration(), steam::mobject::isSameDef(), and PlacementScope_test::verifyEquality().