mf
Media Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
mf::elem_tuple< First_elem, Other_elems > Class Template Reference

Heterogeneous tuple of items. More...

#include <elem_tuple.h>

Public Types

using others_tuple_type = elem_tuple< Other_elems...>
 

Public Member Functions

 elem_tuple ()=default
 
 elem_tuple (const elem_tuple &)=default
 
 elem_tuple (elem_tuple &&)=default
 
 elem_tuple (const First_elem &first, const Other_elems &...others)
 
elem_tupleoperator= (const elem_tuple &)=default
 
elem_tupleoperator= (elem_tuple &&)=default
 
bool is_null () const noexcept
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Public Attributes

First_elem first_
 
others_tuple_type others_
 

Static Public Attributes

static constexpr bool is_nullable = elem_traits<First_elem>::is_nullable || others_tuple_type::is_nullable
 

Friends

bool operator== (const elem_tuple &a, const elem_tuple &b)
 
bool operator!= (const elem_tuple &a, const elem_tuple &b)
 

Detailed Description

template<typename First_elem, typename... Other_elems>
class mf::elem_tuple< First_elem, Other_elems >

Heterogeneous tuple of items.

Similar to std::tuple, but is also POD type (implies standard layout), and guarantees memory layout. Items must be elem types, but not other elem_tuples.

Member Typedef Documentation

template<typename First_elem, typename... Other_elems>
using mf::elem_tuple< First_elem, Other_elems >::others_tuple_type = elem_tuple<Other_elems...>

Constructor & Destructor Documentation

template<typename First_elem, typename... Other_elems>
mf::elem_tuple< First_elem, Other_elems >::elem_tuple ( )
default
template<typename First_elem, typename... Other_elems>
mf::elem_tuple< First_elem, Other_elems >::elem_tuple ( const elem_tuple< First_elem, Other_elems > &  )
default
template<typename First_elem, typename... Other_elems>
mf::elem_tuple< First_elem, Other_elems >::elem_tuple ( elem_tuple< First_elem, Other_elems > &&  )
default
template<typename First_elem, typename... Other_elems>
mf::elem_tuple< First_elem, Other_elems >::elem_tuple ( const First_elem &  first,
const Other_elems &...  others 
)
inline

Member Function Documentation

template<typename First_elem, typename... Other_elems>
bool mf::elem_tuple< First_elem, Other_elems >::is_null ( ) const
inlinenoexcept
template<typename First_elem, typename... Other_elems>
elem_tuple& mf::elem_tuple< First_elem, Other_elems >::operator= ( const elem_tuple< First_elem, Other_elems > &  )
default
template<typename First_elem, typename... Other_elems>
elem_tuple& mf::elem_tuple< First_elem, Other_elems >::operator= ( elem_tuple< First_elem, Other_elems > &&  )
default
template<typename First_elem, typename... Other_elems>
static constexpr std::size_t mf::elem_tuple< First_elem, Other_elems >::size ( )
inlinestatic

Friends And Related Function Documentation

template<typename First_elem, typename... Other_elems>
bool operator!= ( const elem_tuple< First_elem, Other_elems > &  a,
const elem_tuple< First_elem, Other_elems > &  b 
)
friend
template<typename First_elem, typename... Other_elems>
bool operator== ( const elem_tuple< First_elem, Other_elems > &  a,
const elem_tuple< First_elem, Other_elems > &  b 
)
friend

Member Data Documentation

template<typename First_elem, typename... Other_elems>
First_elem mf::elem_tuple< First_elem, Other_elems >::first_
template<typename First_elem, typename... Other_elems>
constexpr bool mf::elem_tuple< First_elem, Other_elems >::is_nullable = elem_traits<First_elem>::is_nullable || others_tuple_type::is_nullable
static
template<typename First_elem, typename... Other_elems>
others_tuple_type mf::elem_tuple< First_elem, Other_elems >::others_

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