xentara-utils v2.0.3
The Xentara Utility Library
Loading...
Searching...
No Matches
xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor Class Referenceabstract

A supervisor object that deals with the actual types. More...

#include <xentara/utils/tools/PolymorphicVariant.hpp>

+ Inheritance diagram for xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor:

Public Member Functions

virtual ~AbstractSupervisor ()=0
 virtual destructor
 
virtual auto destroy (void *self) const -> void=0
 Copies an object from a base storage to a destination storage.
 
virtual auto copyConstruct (void *self, const void *other) const -> void=0
 Copies an object from a base storage to a destination storage.
 
virtual auto moveConstruct (void *self, void *other) const -> void=0
 Moves an object from a base storage to a destination storage.
 
virtual auto copyAssign (void *self, const void *rhs) const -> void=0
 Performs a move assignment.
 
virtual auto moveAssign (void *self, void *rhs) const -> void=0
 Performs a move assignment.
 
virtual auto get (const void *self) const -> const Base *=0
 
virtual auto get (void *self) const -> Base *=0
 
virtual auto equalityCompare (const void *self, const void *rhs) const -> bool=0
 Compare two objects using operator==.
 
virtual auto swap (void *self, void *other) const -> void=0
 Swaps two objects.
 

Detailed Description

template<typename Base, typename... ValueHints>
class xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor

A supervisor object that deals with the actual types.

Constructor & Destructor Documentation

◆ ~AbstractSupervisor()

template<typename Base , typename... ValueHints>
xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::~AbstractSupervisor ( )
pure virtualdefault

virtual destructor

Member Function Documentation

◆ copyAssign()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::copyAssign ( void *  self,
const void *  rhs 
) const -> void
pure virtual

◆ copyConstruct()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::copyConstruct ( void *  self,
const void *  other 
) const -> void
pure virtual

Copies an object from a base storage to a destination storage.

Implemented in xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::ValuelessByExceptionSupervisor.

◆ destroy()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::destroy ( void *  self) const -> void
pure virtual

Copies an object from a base storage to a destination storage.

Implemented in xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::ValuelessByExceptionSupervisor.

◆ equalityCompare()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::equalityCompare ( const void *  self,
const void *  rhs 
) const -> bool
pure virtual

◆ get() [1/2]

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::get ( const void *  self) const -> const Base *
pure virtual

◆ get() [2/2]

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::get ( void *  self) const -> Base *
pure virtual

◆ moveAssign()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::moveAssign ( void *  self,
void *  rhs 
) const -> void
pure virtual

◆ moveConstruct()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::moveConstruct ( void *  self,
void *  other 
) const -> void
pure virtual

Moves an object from a base storage to a destination storage.

Implemented in xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::ValuelessByExceptionSupervisor.

◆ swap()

template<typename Base , typename... ValueHints>
virtual auto xentara::utils::tools::PolymorphicVariant< Base, ValueHints >::AbstractSupervisor::swap ( void *  self,
void *  other 
) const -> void
pure virtual