dune-functions  2.5.1
Public Member Functions | List of all members
Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T > Class Template Reference

Implementation of the internal wrapper interface. More...

#include <dune/functions/common/typeerasure.hh>

Inheritance diagram for Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >:
Inheritance graph

Public Member Functions

template<class TT , disableCopyMove< TypeErasureWrapperImplementation, T > = 0>
 TypeErasureWrapperImplementation (TT &&t)
 Construct wrapper from object. More...
 
virtual TypeErasureWrapperImplementationclone () const
 Implementation of PolymorphicType::clone() More...
 
virtual TypeErasureWrapperImplementationclone (void *buffer) const
 Implementation of PolymorphicType::clone(void* buffer) More...
 
virtual TypeErasureWrapperImplementationmove (void *buffer)
 Implementation of PolymorphicType::move(void* buffer) More...
 
virtual const std::type_info & target_type () const
 Get type of stored object. More...
 

Detailed Description

template<class Interface, template< class > class Implementation, class T>
class Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >

Implementation of the internal wrapper interface.

This class implements the foundation and user interfaces of the internal type erasure wrapper.

The foundation interface of TypeErasureWrapperInterface is directly implemented here whereas the user interface is implemented by deriving from the user-provides Implementation template.

The Implementation is a template taking one class template parameter. It should directly or indirectly derive from this class and inherit its constructors. In order to forward the implemented methods to the erased type it can use the wrapper_ member of this base class being of this type.

Template Parameters
InterfaceClass defininig the internal abstract virtual interface
ImplementationClass defininig implemention the abstract methods of Interface
TA type modelleding the desired interface

Constructor & Destructor Documentation

◆ TypeErasureWrapperImplementation()

template<class Interface , template< class > class Implementation, class T >
template<class TT , disableCopyMove< TypeErasureWrapperImplementation, T > = 0>
Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >::TypeErasureWrapperImplementation ( TT &&  t)
inline

Construct wrapper from object.

Member Function Documentation

◆ clone() [1/2]

template<class Interface , template< class > class Implementation, class T >
virtual TypeErasureWrapperImplementation* Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >::clone ( ) const
inlinevirtual

Implementation of PolymorphicType::clone()

◆ clone() [2/2]

template<class Interface , template< class > class Implementation, class T >
virtual TypeErasureWrapperImplementation* Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >::clone ( void *  buffer) const
inlinevirtual

Implementation of PolymorphicType::clone(void* buffer)

◆ move()

template<class Interface , template< class > class Implementation, class T >
virtual TypeErasureWrapperImplementation* Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >::move ( void *  buffer)
inlinevirtual

◆ target_type()

template<class Interface , template< class > class Implementation, class T >
virtual const std::type_info& Dune::Functions::Imp::TypeErasureWrapperImplementation< Interface, Implementation, T >::target_type ( ) const
inlinevirtual

Get type of stored object.


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