RefleX
Build DDS Applications in Modern C++ without IDL
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Classes | Namespaces | Typedefs | Functions
enable_if.h File Reference
#include <tuple>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <string>
#include <array>
#include <type_traits>
#include <boost/range.hpp>
#include <boost/range/any_range.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/include/at.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/include/size.hpp>
#include <boost/optional.hpp>

Go to the source code of this file.

Classes

struct  reflex::match::Union< TagType, Cases >
 
struct  reflex::match::Sparse< T >
 
struct  reflex::match::BoundedRange< T, Bound >
 
struct  reflex::meta::true_type
 
struct  reflex::meta::false_type
 
struct  reflex::codegen::EnumDef< T >
 
struct  reflex::type_traits::is_bool< T >
 
struct  reflex::type_traits::is_bool< bool >
 
struct  reflex::type_traits::is_primitive< T >
 
struct  reflex::type_traits::is_primitive< match::octet_t >
 
struct  reflex::type_traits::is_primitive< bool >
 
struct  reflex::type_traits::is_primitive< char >
 
struct  reflex::type_traits::is_primitive< signed char >
 
struct  reflex::type_traits::is_primitive< int16_t >
 
struct  reflex::type_traits::is_primitive< uint16_t >
 
struct  reflex::type_traits::is_primitive< int32_t >
 
struct  reflex::type_traits::is_primitive< uint32_t >
 
struct  reflex::type_traits::is_primitive< int64_t >
 
struct  reflex::type_traits::is_primitive< uint64_t >
 
struct  reflex::type_traits::is_primitive< float >
 
struct  reflex::type_traits::is_primitive< double >
 
struct  reflex::type_traits::is_primitive< long double >
 
struct  reflex::type_traits::is_primitive< char32_t >
 
struct  reflex::type_traits::is_primitive< std::tuple< Args...> >
 
struct  reflex::type_traits::is_primitive< std::string >
 
struct  reflex::type_traits::is_primitive< std::vector< T > >
 
struct  reflex::type_traits::is_primitive< reflex::match::Union< TagType, Cases...> >
 
struct  reflex::type_traits::is_enum< T >
 
struct  reflex::type_traits::is_primitive_or_enum< T >
 
struct  reflex::type_traits::is_bool_or_enum< T >
 
struct  reflex::type_traits::is_primitive_and_not_bool< T >
 
struct  reflex::type_traits::is_vector< T >
 
struct  reflex::type_traits::is_vector< std::vector< T > >
 
struct  reflex::type_traits::is_vector< const std::vector< T > >
 
struct  reflex::type_traits::is_string< T >
 
struct  reflex::type_traits::is_string< std::string >
 
struct  reflex::type_traits::is_string< const std::string >
 
struct  reflex::type_traits::is_tuple< T >
 
struct  reflex::type_traits::is_tuple< std::tuple< Args...> >
 
struct  reflex::type_traits::is_tuple< const std::tuple< Args...> >
 
struct  reflex::type_traits::is_stdarray< T >
 
struct  reflex::type_traits::is_stdarray< std::array< T, N > >
 
struct  reflex::type_traits::is_stdarray< const std::array< T, N > >
 
struct  reflex::type_traits::is_stdset< C >
 
struct  reflex::type_traits::is_stdset< std::set< T, Comp, Alloc > >
 
struct  reflex::type_traits::is_stdset< const std::set< T, Comp, Alloc > >
 
struct  reflex::type_traits::is_stdmap< C >
 
struct  reflex::type_traits::is_stdmap< std::map< Key, T, Comp, Alloc > >
 
struct  reflex::type_traits::is_stdmap< const std::map< Key, T, Comp, Alloc > >
 
struct  reflex::type_traits::is_builtin_array< T >
 
struct  reflex::type_traits::is_builtin_array< T[Dim]>
 
struct  reflex::type_traits::is_builtin_array< const T[Dim]>
 
struct  reflex::type_traits::is_builtin_array< T[]>
 
struct  reflex::type_traits::is_builtin_array< const T[]>
 
struct  reflex::type_traits::is_pointer< T >
 
struct  reflex::type_traits::is_pointer< T * >
 
struct  reflex::type_traits::is_pointer< const T * >
 
struct  reflex::type_traits::is_container< T >
 
struct  reflex::type_traits::is_container< std::vector< T, Alloc > >
 
struct  reflex::type_traits::is_container< const std::vector< T, Alloc > >
 
struct  reflex::type_traits::is_container< std::list< T, Alloc > >
 
struct  reflex::type_traits::is_container< const std::list< T, Alloc > >
 
struct  reflex::type_traits::is_container< std::set< Key, Comp, Alloc > >
 
struct  reflex::type_traits::is_container< const std::set< Key, Comp, Alloc > >
 
struct  reflex::type_traits::is_container< std::map< Key, T, Comp, Alloc > >
 
struct  reflex::type_traits::is_container< const std::map< Key, T, Comp, Alloc > >
 
struct  reflex::type_traits::is_union< T >
 
struct  reflex::type_traits::is_union< reflex::match::Union< TagType, Args...> >
 
struct  reflex::type_traits::is_union< const reflex::match::Union< TagType, Args...> >
 
struct  reflex::type_traits::is_sparse< T >
 
struct  reflex::type_traits::is_sparse< reflex::match::Sparse< Args...> >
 
struct  reflex::type_traits::is_sparse< const reflex::match::Sparse< Args...> >
 
struct  reflex::type_traits::is_range< T >
 
struct  reflex::type_traits::is_range< reflex::match::Range< T > >
 
struct  reflex::type_traits::is_range< const reflex::match::Range< T > >
 
struct  reflex::type_traits::is_range< reflex::match::BoundedRange< T, N > >
 
struct  reflex::type_traits::is_range< const reflex::match::BoundedRange< T, N > >
 
struct  reflex::type_traits::is_optional< T >
 
struct  reflex::type_traits::is_optional< boost::optional< T > >
 
struct  reflex::type_traits::container_traits_impl< C, bool >
 
struct  reflex::type_traits::container_traits_impl< C, true >
 
struct  reflex::type_traits::container_traits_impl< C, false >
 
struct  reflex::type_traits::container_traits< C >
 
struct  reflex::type_traits::optional_traits< T >
 
struct  reflex::type_traits::is_char_ptr< T >
 
struct  reflex::type_traits::is_char_ptr< char * >
 
struct  reflex::type_traits::is_char_ptr< const char * >
 
struct  reflex::type_traits::is_char_ptr< char *const >
 
struct  reflex::type_traits::is_char_ptr< const char *const >
 
struct  reflex::type_traits::inheritance_traits< T >
 
struct  reflex::type_traits::default_bound
 
struct  reflex::type_traits::static_string_bound< T, Parent, Index >
 
struct  reflex::type_traits::static_container_bound< T, Parent, Index >
 
struct  reflex::meta::enable_if< bool, T >
 
struct  reflex::meta::enable_if< false, T >
 
struct  reflex::meta::disable_if< bool, T >
 
struct  reflex::meta::disable_if< true, T >
 
struct  reflex::meta::disable_if_lazy< bool, T >
 
struct  reflex::meta::disable_if_lazy< true, T >
 
struct  reflex::meta::dim_list< Dims >
 
struct  reflex::meta::dim_cat< Arg, DimList >
 
struct  reflex::meta::dim_cat< Head, dim_list< Args...> >
 
struct  reflex::meta::dim_cat< Head, dim_list< 0 > >
 
struct  reflex::meta::make_dim_list< class >
 
struct  reflex::meta::Array_Dimensions_Must_Be_Greater_Than_Zero
 
struct  reflex::meta::make_dim_list< T[0]>
 
struct  reflex::meta::make_dim_list< std::array< T, 0 > >
 
struct  reflex::meta::make_dim_list< T[Dim]>
 
struct  reflex::meta::make_dim_list< std::array< T, Dim > >
 
struct  reflex::meta::remove_reference< T >
 
struct  reflex::meta::remove_reference< T & >
 
struct  reflex::meta::remove_const< T >
 
struct  reflex::meta::remove_const< const T >
 
struct  reflex::meta::remove_all_extents< T >
 
struct  reflex::meta::remove_all_extents< T[]>
 
struct  reflex::meta::remove_all_extents< T[N]>
 
struct  reflex::meta::remove_all_extents< std::array< T, N > >
 
struct  reflex::meta::packhead< T, U >
 
struct  reflex::meta::packhead< T >
 
struct  reflex::meta::multiply< Head, Tail >
 
struct  reflex::meta::multiply< N >
 
struct  reflex::meta::dim_list_multiply< class >
 
struct  reflex::meta::dim_list_multiply< dim_list< Dims...> >
 
struct  reflex::meta::at< FusionSeq, I >
 
struct  reflex::meta::at< std::tuple< Args...>, I >
 
struct  reflex::meta::at< const std::tuple< Args...>, I >
 
struct  reflex::meta::at< std::pair< First, Second >, I >
 
struct  reflex::meta::at< const std::pair< First, Second >, I >
 
struct  reflex::meta::size< FusionSeq >
 
struct  reflex::meta::size< std::pair< First, Second > >
 
struct  reflex::meta::size< const std::pair< First, Second > >
 
struct  reflex::meta::size< std::tuple< Args...> >
 
struct  reflex::meta::size< const std::tuple< Args...> >
 
struct  reflex::meta::remove_refs< T >
 
struct  reflex::meta::remove_refs< std::tuple< Args...> >
 
struct  reflex::meta::remove_refs< const std::tuple< Args...> >
 
struct  reflex::match::MultiDimArray< T, I, J >
 
struct  reflex::match::MultiDimArray< T, I >
 

Namespaces

 reflex
 The top-level namespace for all the RefleX APIs.
 
 reflex::match
 Contains types to adapt types of members of structured type to an existing TypeCode.
 
 reflex::meta
 Includes C++ compile-time meta-programming facilities.
 
 reflex::codegen
 RefleX macros in adapt_macros.h expand static information of user-defined types to this namespace.
 
 reflex::type_traits
 Contains customizable type traits for user-defined types.
 

Typedefs

template<class T >
using reflex::match::Range = boost::any_range< T, boost::forward_traversal_tag, T, std::ptrdiff_t >
 

Functions

template<class T >
void reflex::codegen::enum_cast (T &dst, DDS_Long src)
 Casts integers to user-defined enumeration types. More...
 
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)