HOPS
HOPS class reference
Classes | Namespaces | Typedefs | Functions
MHO_Meta.hh File Reference

template meta-programming helper functions, mostly tuple access/modification More...

#include <complex>
#include <map>
#include <tuple>
#include <type_traits>

Go to the source code of this file.

Classes

struct  hops::apply_to_tuple< NTypes >
 Class apply_to_tuple - generic apply functor to tuple element (for runtime-indexed access) More...
 
struct  hops::apply_to_tuple2< NTypes >
 
struct  hops::apply_to_tuple2< 0 >
 
struct  hops::apply_to_tuple< 0 >
 Class apply_to_tuple<0> More...
 
struct  hops::count_instances_of_type< XCheckType, N, T >
 Class count_instances_of_type - utility to count the instances of a particular type in a parameter pack. More...
 
struct  hops::count_instances_of_type< XCheckType, 0, T... >
 Class count_instances_of_type<XCheckType, 0, T...> More...
 
struct  hops::indexed_tuple_visit< NTypes >
 Class indexed_tuple_visit - generic apply functor (which takes and index value!) to all elements of a tuple. More...
 
struct  hops::indexed_tuple_visit< 0 >
 Class indexed_tuple_visit<0> More...
 
struct  hops::is_complex< XValueType >
 
struct  hops::is_complex< std::complex< double > >
 
struct  hops::is_complex< std::complex< float > >
 
struct  hops::is_complex< std::complex< long double > >
 
struct  hops::is_same_count< T, U >
 Class is_same_count - utility to return 1 if two types are the same, zero otherwise. More...
 
struct  hops::is_same_count< T, T >
 Class is_same_count<T, T> More...
 
class  hops::MHO_AxisBase
 
struct  hops::MHO_EmptyType
 Class MHO_EmptyType. More...
 
class  hops::MHO_NullType
 
class  hops::MHO_ScalarContainerBase
 
class  hops::MHO_TableContainerBase
 
struct  hops::MHO_Typelist< T >
 Class MHO_Typelist. More...
 
struct  hops::MHO_TypelistSizeImpl< MHO_Typelist< T... > >
 Class MHO_TypelistSizeImpl<MHO_Typelist<T...>> More...
 
class  hops::MHO_VectorContainerBase
 

Namespaces

 hops
 

Typedefs

template<class L >
using hops::MHO_TypelistSize = typename MHO_TypelistSizeImpl< L >::type
 Class MHO_TypelistSize - alias to MHO_TypelistSize, retrieve the value itself with value (element of std::integral_constant) More...
 

Functions

template<typename XTupleType , typename XFunctorType >
void hops::apply_at (const XTupleType &tup, size_t index, XFunctorType &functor)
 Applies a functor to an element at a specified index in a tuple. More...
 
template<typename XTupleType , typename XFunctorType >
void hops::apply_at (XTupleType &tup, size_t index, XFunctorType &functor)
 
template<typename XTupleType , typename XTupleType2 , typename XFunctorType >
void hops::apply_at2 (const XTupleType &tup1, XTupleType &tup2, size_t index, XFunctorType &functor)
 
template<typename XTupleType , typename XTupleType2 , typename XFunctorType >
void hops::apply_at2 (XTupleType &tup1, XTupleType2 &tup2, size_t index, XFunctorType &functor)
 
template<size_t N = 0, typename XStream , typename... T>
std::enable_if<(N >=sizeof...(T)), XStream & >::type hops::istream_tuple (XStream &s, std::tuple< T... > &)
 Returns an XStream& without modification for terminating case. More...
 
template<size_t N = 0, typename XStream , typename... T>
std::enable_if<(N< sizeof...(T)), XStream & >::type hops::istream_tuple (XStream &s, std::tuple< T... > &t)
 Terminating case for istream_tuple, returns s. More...
 
template<size_t N = 0, typename XStream , typename... T>
std::enable_if<(N >=sizeof...(T)), XStream & >::type hops::ostream_tuple (XStream &s, const std::tuple< T... > &)
 Terminating case for ostream_tuple, does nothing and returns s. More...
 
template<size_t N = 0, typename XStream , typename... T>
std::enable_if<(N< sizeof...(T)), XStream & >::type hops::ostream_tuple (XStream &s, const std::tuple< T... > &t)
 Terminating case for ostream_tuple: returns s. More...
 
template<typename XContainer1 , typename XContainer2 >
std::map< typename XContainer1::value_type, typename XContainer2::value_type > hops::zip_into_map (const XContainer1 &c1, const XContainer2 &c2)
 zip elements of two iterable (probably STL) containers (which define a value_type) into a map which takes the i-th element of the 1st container to the i-th element of the 2nd container. Terminates at the end of whatever container stops first. More...
 

Detailed Description

template meta-programming helper functions, mostly tuple access/modification

Author
J. Barrett - barre.nosp@m.ttj@.nosp@m.mit.e.nosp@m.du
Date
Fri Oct 16 11:17:19 2020 -0400

Class Documentation

◆ hops::MHO_EmptyType

struct hops::MHO_EmptyType

◆ hops::MHO_NullType

class hops::MHO_NullType

◆ hops::MHO_Typelist

struct hops::MHO_Typelist

template<typename... T>
struct hops::MHO_Typelist< T >

Class MHO_Typelist.

◆ hops::MHO_TypelistSizeImpl< MHO_Typelist< T... > >

struct hops::MHO_TypelistSizeImpl< MHO_Typelist< T... > >

template<class... T>
struct hops::MHO_TypelistSizeImpl< MHO_Typelist< T... > >

Class MHO_TypelistSizeImpl<MHO_Typelist<T...>>

Template Parameters
LTemplate parameter L
Class Members
type