Alexandria 2.31.2
SDC-CH common library for the Euclid project
|
#include <InstOrRefHolder.h>
Public Member Functions | |
virtual | ~InstOrRefHolder ()=default |
virtual InterfaceType & | ref ()=0 |
Static Public Member Functions | |
template<typename InstanceType = InterfaceType, typename... Args> | |
static std::unique_ptr< InstOrRefHolder< InterfaceType > > | create (Args &&... args) |
static std::unique_ptr< InstOrRefHolder< InterfaceType > > | create (InterfaceType &ref) |
Interface for classes that can store either an instance or a reference to an object. Objects that provide this interface are to be created with InstOrRefHolder<InterfaceType>::create
InterfaceType | The type of the stored object |
Definition at line 38 of file InstOrRefHolder.h.
|
virtualdefault |
|
static |
Definition at line 60 of file InstOrRefHolder.icpp.
References std::forward(), and Euclid::make_unique().
Referenced by Euclid::Table::AsciiReader::create(), and Euclid::Table::AsciiWriter::create().
|
static |
Definition at line 68 of file InstOrRefHolder.icpp.
References Euclid::make_unique(), and ref().
|
pure virtual |
Implemented in Euclid::InstOrRefHolder_Impl::InstHolder_Impl< InterfaceType, InstanceType >, and Euclid::InstOrRefHolder_Impl::RefHolder_Impl< InterfaceType >.
Referenced by create().