Multiscale Universal Interface  2.0
A Concurrent Framework for Coupling Heterogeneous Solvers
mui::storage< Types > Struct Template Reference

#include <dynstorage.h>

Public Types

using id_t = std::int32_t
 

Public Member Functions

 storage () noexcept
 
 storage (const storage &rhs)
 
 storage (storage &&rhs) noexcept
 
 ~storage ()
 
storageoperator= (storage rhs)
 
template<typename ValueType >
 storage (const ValueType &value)
 
template<typename ValueType >
 storage (ValueType &&value, typename std::enable_if<!std::is_same< storage &, ValueType >::value >::type *=0, typename std::enable_if<!std::is_const< ValueType >::value >::type *=0)
 
template<typename ValueType >
storageoperator= (ValueType &&rhs)
 
void swap (storage &rhs) noexcept
 
void clear () noexcept
 
bool empty () const noexcept
 
 operator bool () const noexcept
 
id_t which () const
 
template<typename F , typename R_ = typename std::result_of<F(const Head_&)>::type>
R_ apply_visitor (F f) const &
 
template<typename F , typename R_ = typename std::result_of<F(Head_&)>::type>
R_ apply_visitor (F f) &
 
template<typename F , typename R_ = typename std::result_of<F(Head_&&)>::type>
R_ apply_visitorm (F f) &&
 

Static Public Attributes

static const id_t bad_id = sizeof...(Types)
 

Friends

template<typename ValueType , typename... Types2>
ValueType * storage_cast (storage< Types2... > *)
 

Member Typedef Documentation

◆ id_t

template<typename... Types>
using mui::storage< Types >::id_t = std::int32_t

Constructor & Destructor Documentation

◆ storage() [1/5]

template<typename... Types>
mui::storage< Types >::storage ( )
inlinenoexcept

◆ storage() [2/5]

template<typename... Types>
mui::storage< Types >::storage ( const storage< Types > &  rhs)
inline

◆ storage() [3/5]

template<typename... Types>
mui::storage< Types >::storage ( storage< Types > &&  rhs)
inlinenoexcept

◆ ~storage()

template<typename... Types>
mui::storage< Types >::~storage ( )
inline

◆ storage() [4/5]

template<typename... Types>
template<typename ValueType >
mui::storage< Types >::storage ( const ValueType &  value)
inlineexplicit

◆ storage() [5/5]

template<typename... Types>
template<typename ValueType >
mui::storage< Types >::storage ( ValueType &&  value,
typename std::enable_if<!std::is_same< storage< Types > &, ValueType >::value >::type *  = 0,
typename std::enable_if<!std::is_const< ValueType >::value >::type *  = 0 
)
inlineexplicit

Member Function Documentation

◆ apply_visitor() [1/2]

template<typename... Types>
template<typename F , typename R_ = typename std::result_of<F(Head_&)>::type>
R_ mui::storage< Types >::apply_visitor ( f) &
inline

◆ apply_visitor() [2/2]

template<typename... Types>
template<typename F , typename R_ = typename std::result_of<F(const Head_&)>::type>
R_ mui::storage< Types >::apply_visitor ( f) const &
inline

◆ apply_visitorm()

template<typename... Types>
template<typename F , typename R_ = typename std::result_of<F(Head_&&)>::type>
R_ mui::storage< Types >::apply_visitorm ( f) &&
inline

◆ clear()

template<typename... Types>
void mui::storage< Types >::clear ( )
inlinenoexcept

◆ empty()

template<typename... Types>
bool mui::storage< Types >::empty ( ) const
inlinenoexcept

◆ operator bool()

template<typename... Types>
mui::storage< Types >::operator bool ( ) const
inlineexplicitnoexcept

◆ operator=() [1/2]

template<typename... Types>
storage& mui::storage< Types >::operator= ( storage< Types >  rhs)
inline

◆ operator=() [2/2]

template<typename... Types>
template<typename ValueType >
storage& mui::storage< Types >::operator= ( ValueType &&  rhs)
inline

◆ swap()

template<typename... Types>
void mui::storage< Types >::swap ( storage< Types > &  rhs)
inlinenoexcept

◆ which()

template<typename... Types>
id_t mui::storage< Types >::which ( ) const
inline

Friends And Related Function Documentation

◆ storage_cast

template<typename... Types>
template<typename ValueType , typename... Types2>
ValueType* storage_cast ( storage< Types2... > *  )
friend

Member Data Documentation

◆ bad_id

template<typename... Types>
const id_t mui::storage< Types >::bad_id = sizeof...(Types)
static

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