Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
CopySupport< IFA, BA > Class Template Referenceabstract

#include "lib/polymorphic-value.hpp"

Description

template<class IFA, class BA = IFA>
class lib::polyvalue::CopySupport< IFA, BA >

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
 

Constructor & Destructor Documentation

◆ ~CopySupport()

template<class IFA , class BA = IFA>
virtual ~CopySupport ( )
inlinevirtual

Definition at line 197 of file polymorphic-value.hpp.

Member Function Documentation

◆ cloneInto()

template<class IFA , class BA = IFA>
virtual void cloneInto ( void *  targetBuffer) const
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:

◆ copyInto()

template<class IFA , class BA = IFA>
virtual void copyInto ( IFA &  targetBase) const
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 >:

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