The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
Gaudi::Interface::Bind::Box< IFace > Class Template Referencefinal

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/IBinder.h>

Public Member Functions

 Box (IFace const *ptr)
template<std::derived_from< IFace > Ret, typename... Args>
 Box (std::in_place_type_t< Ret >, Args &&... args)
 ~Box ()
 Box (const Box &)=delete
Box & operator= (const Box &)=delete
 Box (Box &&rhs)=delete
Box & operator= (Box &&)=delete
 operator IFace const & () const

Private Attributes

const IFace * m_ptr = nullptr
bool m_owned = false

Detailed Description

template<typename IFace>
class Gaudi::Interface::Bind::Box< IFace >

Definition at line 22 of file IBinder.h.

Constructor & Destructor Documentation

◆ Box() [1/4]

template<typename IFace>
Gaudi::Interface::Bind::Box< IFace >::Box ( IFace const * ptr)
inline

Definition at line 28 of file IBinder.h.

28: m_ptr{ ptr } { assert( m_ptr != nullptr ); }

◆ Box() [2/4]

template<typename IFace>
template<std::derived_from< IFace > Ret, typename... Args>
Gaudi::Interface::Bind::Box< IFace >::Box ( std::in_place_type_t< Ret > ,
Args &&... args )
inline

Definition at line 31 of file IBinder.h.

32 : m_ptr{ new Ret{ std::forward<Args>( args )... } }, m_owned{ true } {}

◆ ~Box()

template<typename IFace>
Gaudi::Interface::Bind::Box< IFace >::~Box ( )
inline

Definition at line 34 of file IBinder.h.

34 {
35 if ( m_owned ) delete m_ptr;
36 }

◆ Box() [3/4]

template<typename IFace>
Gaudi::Interface::Bind::Box< IFace >::Box ( const Box< IFace > & )
delete

◆ Box() [4/4]

template<typename IFace>
Gaudi::Interface::Bind::Box< IFace >::Box ( Box< IFace > && rhs)
delete

Member Function Documentation

◆ operator IFace const &()

template<typename IFace>
Gaudi::Interface::Bind::Box< IFace >::operator IFace const & ( ) const
inline

Definition at line 42 of file IBinder.h.

42{ return *m_ptr; }

◆ operator=() [1/2]

template<typename IFace>
Box & Gaudi::Interface::Bind::Box< IFace >::operator= ( Box< IFace > && )
delete

◆ operator=() [2/2]

template<typename IFace>
Box & Gaudi::Interface::Bind::Box< IFace >::operator= ( const Box< IFace > & )
delete

Member Data Documentation

◆ m_owned

template<typename IFace>
bool Gaudi::Interface::Bind::Box< IFace >::m_owned = false
private

Definition at line 24 of file IBinder.h.

◆ m_ptr

template<typename IFace>
const IFace* Gaudi::Interface::Bind::Box< IFace >::m_ptr = nullptr
private

Definition at line 23 of file IBinder.h.


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