Lumiera
0.pre.03
»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 void | cloneInto (void *targetBuffer) const =0 |
virtual void | copyInto (IFA &targetBase) const =0 |