RefleX
Build DDS Applications in Modern C++ without IDL
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Classes | Functions
reflex::meta Namespace Reference

Includes C++ compile-time meta-programming facilities. More...

Classes

struct  true_type
 
struct  false_type
 
struct  enable_if
 
struct  enable_if< false, T >
 
struct  disable_if
 
struct  disable_if< true, T >
 
struct  disable_if_lazy
 
struct  disable_if_lazy< true, T >
 
struct  dim_list
 
struct  dim_cat
 
struct  dim_cat< Head, dim_list< Args...> >
 
struct  dim_cat< Head, dim_list< 0 > >
 
struct  make_dim_list
 
struct  Array_Dimensions_Must_Be_Greater_Than_Zero
 
struct  make_dim_list< T[0]>
 
struct  make_dim_list< std::array< T, 0 > >
 
struct  make_dim_list< T[Dim]>
 
struct  make_dim_list< std::array< T, Dim > >
 
struct  remove_reference
 
struct  remove_reference< T & >
 
struct  remove_const
 
struct  remove_const< const T >
 
struct  remove_all_extents
 
struct  remove_all_extents< T[]>
 
struct  remove_all_extents< T[N]>
 
struct  remove_all_extents< std::array< T, N > >
 
struct  packhead
 
struct  packhead< T >
 
struct  multiply
 
struct  multiply< N >
 
struct  dim_list_multiply
 
struct  dim_list_multiply< dim_list< Dims...> >
 
struct  at
 
struct  at< std::tuple< Args...>, I >
 
struct  at< const std::tuple< Args...>, I >
 
struct  at< std::pair< First, Second >, I >
 
struct  at< const std::pair< First, Second >, I >
 
struct  size
 
struct  size< std::pair< First, Second > >
 
struct  size< const std::pair< First, Second > >
 
struct  size< std::tuple< Args...> >
 
struct  size< const std::tuple< Args...> >
 
struct  remove_refs
 
struct  remove_refs< std::tuple< Args...> >
 
struct  remove_refs< const std::tuple< Args...> >
 
struct  indices
 
struct  get_nested_type
 
struct  get_nested_type< std::tuple< Args...>, indices< Head, Tail...> >
 
struct  get_nested_type< std::tuple< Args...>, indices< Head > >
 
struct  get_nested_type< match::Union< TagType, Args...>, indices< Head, Tail...> >
 
struct  get_nested_type< match::Union< TagType, Args...>, indices< Head > >
 
struct  get_nested_type< match::Sparse< Args...>, indices< Head, Tail...> >
 
struct  get_nested_type< match::Sparse< Args...>, indices< Head > >
 
struct  get_nested_type< std::vector< T >, indices< Head, Tail...> >
 
struct  get_nested_type< std::vector< T >, indices< Head > >
 

Functions

template<size_t I, class FusionSeq >
disable_if_lazy
< reflex::type_traits::is_tuple
< FusionSeq >::value, at
< FusionSeq, I > >::type 
get (FusionSeq &seq)
 
template<size_t I, class FusionSeq >
disable_if_lazy
< reflex::type_traits::is_tuple
< FusionSeq >::value, at
< const FusionSeq, I > >::type 
get (const FusionSeq &seq)
 
template<size_t I, class... Args>
at< std::tuple< Args...>, I >
::type & 
get (std::tuple< Args...> &tuple)
 
template<size_t I, class... Args>
at< const std::tuple< Args...>
, I >::type & 
get (const std::tuple< Args...> &tuple)
 
template<size_t I, class First , class Second >
at< std::pair< First, Second >
, I >::type & 
get (std::pair< First, Second > &pair)
 
template<size_t I, class First , class Second >
at< const std::pair< First,
Second >, I >::type & 
get (const std::pair< First, Second > &pair)
 

Detailed Description

Includes C++ compile-time meta-programming facilities.

Function Documentation

template<size_t I, class FusionSeq >
disable_if_lazy<reflex::type_traits::is_tuple<FusionSeq>::value, at<FusionSeq, I > >::type reflex::meta::get ( FusionSeq &  seq)
template<size_t I, class FusionSeq >
disable_if_lazy<reflex::type_traits::is_tuple<FusionSeq>::value, at<const FusionSeq, I > >::type reflex::meta::get ( const FusionSeq &  seq)
template<size_t I, class... Args>
at<std::tuple<Args...>, I>::type& reflex::meta::get ( std::tuple< Args...> &  tuple)
template<size_t I, class... Args>
at<const std::tuple<Args...>, I>::type& reflex::meta::get ( const std::tuple< Args...> &  tuple)
template<size_t I, class First , class Second >
at<std::pair<First, Second>, I>::type& reflex::meta::get ( std::pair< First, Second > &  pair)
template<size_t I, class First , class Second >
at<const std::pair<First, Second>, I>::type& reflex::meta::get ( const std::pair< First, Second > &  pair)