hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Public Member Functions | Private Member Functions | Private Attributes | List of all members
hobbes::variant< Ctors > Class Template Reference

#include <variant.H>

Inheritance diagram for hobbes::variant< Ctors >:
Inheritance graph
Collaboration diagram for hobbes::variant< Ctors >:
Collaboration graph

Public Member Functions

 variant ()
 
template<typename T >
 variant (const T &t)
 
 variant (const variant< Ctors... > &rhs)
 
 ~variant ()
 
variant< Ctors... > & operator= (const variant< Ctors... > &rhs)
 
template<typename T >
T * get ()
 
template<typename T >
const T * get () const
 

Private Member Functions

template<typename T >
T * findByCtor () const
 

Private Attributes

uint32_t tag
 
union {
   char   storage [maximum< TSizeOfF, Ctors... >
      ::value]
 
   maximum< TAlignOfF, Ctors... >::type   maxAlignedT
 
}; 
 

Constructor & Destructor Documentation

◆ variant() [1/3]

template<typename ... Ctors>
hobbes::variant< Ctors >::variant ( )
inline

◆ variant() [2/3]

template<typename ... Ctors>
template<typename T >
hobbes::variant< Ctors >::variant ( const T &  t)
inline

◆ variant() [3/3]

template<typename ... Ctors>
hobbes::variant< Ctors >::variant ( const variant< Ctors... > &  rhs)
inline

◆ ~variant()

template<typename ... Ctors>
hobbes::variant< Ctors >::~variant ( )
inline

Member Function Documentation

◆ findByCtor()

template<typename ... Ctors>
template<typename T >
T* hobbes::variant< Ctors >::findByCtor ( ) const
inlineprivate

◆ get() [1/2]

template<typename ... Ctors>
template<typename T >
T* hobbes::variant< Ctors >::get ( )
inline

◆ get() [2/2]

template<typename ... Ctors>
template<typename T >
const T* hobbes::variant< Ctors >::get ( ) const
inline

◆ operator=()

template<typename ... Ctors>
variant<Ctors...>& hobbes::variant< Ctors >::operator= ( const variant< Ctors... > &  rhs)
inline

Member Data Documentation

◆ @6

union { ... }

◆ maxAlignedT

template<typename ... Ctors>
maximum<TAlignOfF, Ctors...>::type hobbes::variant< Ctors >::maxAlignedT

◆ storage

template<typename ... Ctors>
char hobbes::variant< Ctors >::storage[maximum< TSizeOfF, Ctors... >::value]

◆ tag

template<typename ... Ctors>
uint32_t hobbes::variant< Ctors >::tag
private

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