![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
#include "lib/polymorphic-value.hpp"
Interface for active support of copy operations by the embedded client objects.
When inserted into the inheritance chain above the concrete implementation objects, PolymorphicValue is able to perform copy operations trivially and without any dynamic_cast and other run time overhead besides a simple indirection through the VTable. To enable this support, the implementation objects should inherit from CopySupport<Interface> (where Interface would be the public API for all these embedded implementation objects). Alternatively, it's also possible to place this CopySupport API as parent to the public API (it might even be completely absent, but then you'd need to provide an explicit specialisation of the Traits template to tell PolymorphicValue how to access the copy support functions.)
Definition at line 193 of file polymorphic-value.hpp.
Public Member Functions | |
| virtual | ~CopySupport () |
| virtual void | cloneInto (void *targetBuffer) const =0 |
| virtual void | copyInto (IFA &targetBase) const =0 |
|
inlinevirtual |
Definition at line 197 of file polymorphic-value.hpp.
|
pure virtual |
Implemented in PolymorphicValue< IFA, storage, CPY >::Adapter< IMP >.
Referenced by PolymorphicValue< IFA, storage, CPY >::PolymorphicValue().
Here is the caller graph for this function:
|
pure virtual |
Implemented in PolymorphicValue< IFA, storage, CPY >::Adapter< IMP >.
Referenced by PolymorphicValue< IFA, storage, CPY >::operator=().
Here is the caller graph for this function:
Inheritance diagram for CopySupport< IFA, BA >:
Collaboration diagram for CopySupport< IFA, BA >: