Lumiera  0.pre.03
»edit your freedom«
Placement< MO, B > Class Template Reference

#include "steam/mobject/placement.hpp"

Description

template<class MO, class B>
class steam::mobject::Placement< MO, B >

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.

Parameters
MOthe (compile time) type of the referent
Bimmediate base class of this placement
Note
please refrain from adding additional functionality to these subclasses. Especially, don't add any fields to the subclass, as Placements are treated like values at times, and thus slicing will happen, which in this special case is acceptable.

Definition at line 82 of file trait.hpp.

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)
 

Member Function Documentation

◆ getID()

_Id getID ( ) const
inline

<

Note
overrides HashIndexed::getID to pass specific type information,

Definition at line 251 of file placement.hpp.

Referenced by PlacementIndex_test::checkContentsEnumeration(), steam::mobject::isSameDef(), and PlacementScope_test::verifyEquality().

+ Here is the caller graph for this function:
+ Inheritance diagram for Placement< MO, B >:
+ Collaboration diagram for Placement< MO, B >:

The documentation for this class was generated from the following files: