RxCpp
The Reactive Extensions for Native (RxCpp) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators in both C and C++.
Classes | Namespaces | Macros | Typedefs | Functions
rx-util.hpp File Reference
#include "rx-includes.hpp"
Include dependency graph for rx-util.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rxcpp::util::values< T, ValueN >
 
struct  rxcpp::util::values_from< T, Remaining, Step, Cursor, ValueN >
 
struct  rxcpp::util::values_from< T, 0, Step, Cursor, ValueN... >
 
struct  rxcpp::util::values_from< T, Remaining, Step, Cursor, ValueN >
 
struct  rxcpp::util::all_true< BN >
 
struct  rxcpp::util::all_true< B >
 
struct  rxcpp::util::all_true< B, BN... >
 
struct  rxcpp::util::all_true_type< BN >
 
struct  rxcpp::util::all_true_type< B >
 
struct  rxcpp::util::all_true_type< B, BN... >
 
struct  rxcpp::util::all_values_true
 
struct  rxcpp::util::any_value_true
 
struct  rxcpp::util::types< TN >
 
struct  rxcpp::util::types_checked
 
struct  rxcpp::util::types_checked_from< TN >
 
struct  rxcpp::util::expand_value_types< Types, class >
 
struct  rxcpp::util::expand_value_types< types< TN... >, types_checked_t< typename std::decay< TN >::type::value_type... > >
 
struct  rxcpp::util::value_type_from< T, C >
 
struct  rxcpp::util::value_type_from< T, typename types_checked_from< value_type_t< T > >::type >
 
struct  rxcpp::util::resolve_type< D >
 
struct  rxcpp::util::defer_trait< Deferred, AN >
 
struct  rxcpp::util::defer_trait< Deferred, AN >::tag_valid< R >
 
struct  rxcpp::util::defer_trait< Deferred, AN >::tag_not_valid
 
struct  rxcpp::util::defer_type< Deferred, AN >
 
struct  rxcpp::util::defer_type< Deferred, AN >::tag_valid< R >
 
struct  rxcpp::util::defer_type< Deferred, AN >::tag_not_valid
 
struct  rxcpp::util::defer_value_type< Deferred, AN >
 
struct  rxcpp::util::defer_value_type< Deferred, AN >::tag_valid< R >
 
struct  rxcpp::util::defer_value_type< Deferred, AN >::tag_not_valid
 
struct  rxcpp::util::defer_seed_type< Deferred, AN >
 
struct  rxcpp::util::defer_seed_type< Deferred, AN >::tag_valid< R >
 
struct  rxcpp::util::defer_seed_type< Deferred, AN >::tag_not_valid
 
struct  rxcpp::util::resolve_type< D >
 
struct  rxcpp::util::resolve_type< defer_type< Deferred, AN... > >
 
struct  rxcpp::util::resolve_type< defer_value_type< Deferred, AN... > >
 
struct  rxcpp::util::resolve_type< defer_seed_type< Deferred, AN... > >
 
struct  rxcpp::util::plus
 
struct  rxcpp::util::count
 
struct  rxcpp::util::less
 
struct  rxcpp::util::equal_to< T >
 
struct  rxcpp::util::equal_to< void >
 
struct  rxcpp::util::is_string< typename, C >
 
struct  rxcpp::util::is_string< T, typename types_checked_from< typename T::value_type, typename T::traits_type, typename T::allocator_type >::type >
 
struct  rxcpp::util::is_duration< T, Decayed >
 
struct  rxcpp::util::negation< T >
 
struct  rxcpp::filtered_hash< T, typename >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< std::is_enum< T >::value >::type >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< std::is_integral< T >::value >::type >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< rxu::is_string< T >::value >::type >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< std::is_convertible< T, std::chrono::duration< typename T::rep, typename T::period > >::value >::type >
 
struct  rxcpp::filtered_hash< T, typename std::enable_if< std::is_convertible< T, std::chrono::time_point< typename T::clock, typename T::duration > >::value >::type >
 
struct  rxcpp::is_hashable< typename, C >
 
struct  rxcpp::is_hashable< T, typename rxu::types_checked_from< typename filtered_hash< T >::result_type, typename filtered_hash< T >::argument_type, typename std::result_of< filtered_hash< T >(T)>::type >::type >
 

Namespaces

 rxcpp
 
 rxcpp::util
 

Macros

#define RXCPP_RX_UTIL_HPP
 
#define RXCPP_CONCAT(Prefix, Suffix)   Prefix ## Suffix
 
#define RXCPP_CONCAT_EVALUATE(Prefix, Suffix)   RXCPP_CONCAT(Prefix, Suffix)
 
#define RXCPP_MAKE_IDENTIFIER(Prefix)   RXCPP_CONCAT_EVALUATE(Prefix, __LINE__)
 
#define RXCPP_UNWIND(Name, Function)   RXCPP_UNWIND_EXPLICIT(uwfunc_ ## Name, Name, Function)
 
#define RXCPP_UNWIND_AUTO(Function)   RXCPP_UNWIND_EXPLICIT(RXCPP_MAKE_IDENTIFIER(uwfunc_), RXCPP_MAKE_IDENTIFIER(unwind_), Function)
 
#define RXCPP_UNWIND_EXPLICIT(FunctionName, UnwinderName, Function)
 

Typedefs

template<class T >
using rxcpp::util::value_type_t = typename std::decay< T >::type::value_type
 
template<class T >
using rxcpp::util::decay_t = typename std::decay< T >::type
 
template<class... TN>
using rxcpp::util::result_of_t = typename std::result_of< TN... >::type
 
template<bool... BN>
using rxcpp::util::enable_if_all_true_t = typename std::enable_if< all_true< BN... >::value >::type
 
template<class... BN>
using rxcpp::util::enable_if_all_true_type_t = typename std::enable_if< all_true_type< BN... >::value >::type
 
template<class... TN>
using rxcpp::util::types_checked_t = typename types_checked_from< TN... >::type
 
template<class... TN>
using rxcpp::util::value_types_t = typename expand_value_types< types< TN... >>::type
 

Functions

template<class T , std::size_t size>
std::vector< T > rxcpp::util::to_vector (const T(&arr)[size])
 
template<class T >
std::vector< T > rxcpp::util::to_vector (std::initializer_list< T > il)
 
template<class T0 , class... TN>
std::enable_if<!std::is_array< T0 >::value &&std::is_pod< T0 >::value, std::vector< T0 > >::type rxcpp::util::to_vector (T0 t0, TN...tn)
 
template<typename T >
T const & rxcpp::util::as_const (T &t)
 
template<typename T >
void rxcpp::util::as_const (T const &&)=delete
 
template<class F , class... ParamN>
auto rxcpp::util::apply (std::tuple< ParamN... > p, F &&f) -> decltype(detail::apply(std::move(p), typename values_from< int, sizeof...(ParamN)>::type(), std::forward< F >(f)))
 
template<class F_inner , class F_outer , class... ParamN>
auto rxcpp::util::apply_to_each (std::tuple< ParamN... > &p, F_inner &f_inner, F_outer &f_outer) -> decltype(detail::apply_to_each(p, typename values_from< int, sizeof...(ParamN)>::type(), f_inner, f_outer))
 
template<class F_inner , class F_outer , class... ParamN>
auto rxcpp::util::apply_to_each (std::tuple< ParamN... > &p, const F_inner &f_inner, const F_outer &f_outer) -> decltype(detail::apply_to_each(p, typename values_from< int, sizeof...(ParamN)>::type(), f_inner, f_outer))
 
template<class F >
auto rxcpp::util::apply_to (F f) -> detail::apply_to< F >
 
auto rxcpp::util::pack () -> detail::pack
 
template<int Index>
auto rxcpp::util::take_at () -> detail::take_at< Index >
 
template<class OStream >
auto rxcpp::util::endline (OStream &os) -> detail::endline< OStream >
 
template<class OStream >
auto rxcpp::util::println (OStream &os) -> decltype(detail::print_followed_with(os, endline(os)))
 
template<class OStream , class Delimit >
auto rxcpp::util::print_followed_with (OStream &os, Delimit d) -> decltype(detail::print_followed_with(os, detail::insert_function< OStream, Delimit >(os, std::move(d))))
 
template<class OStream , class DelimitValue >
auto rxcpp::util::print_followed_by (OStream &os, DelimitValue dv) -> decltype(detail::print_followed_with(os, detail::insert_value< OStream, DelimitValue >(os, std::move(dv))))
 
std::string rxcpp::util::what (std::exception_ptr ep)
 
template<class... T>
auto rxcpp::util::surely (const std::tuple< T... > &tpl) -> decltype(apply(tpl, detail::surely()))
 

Macro Definition Documentation

#define RXCPP_CONCAT (   Prefix,
  Suffix 
)    Prefix ## Suffix
#define RXCPP_CONCAT_EVALUATE (   Prefix,
  Suffix 
)    RXCPP_CONCAT(Prefix, Suffix)
#define RXCPP_MAKE_IDENTIFIER (   Prefix)    RXCPP_CONCAT_EVALUATE(Prefix, __LINE__)
#define RXCPP_RX_UTIL_HPP
#define RXCPP_UNWIND (   Name,
  Function 
)    RXCPP_UNWIND_EXPLICIT(uwfunc_ ## Name, Name, Function)
#define RXCPP_UNWIND_AUTO (   Function)    RXCPP_UNWIND_EXPLICIT(RXCPP_MAKE_IDENTIFIER(uwfunc_), RXCPP_MAKE_IDENTIFIER(unwind_), Function)
#define RXCPP_UNWIND_EXPLICIT (   FunctionName,
  UnwinderName,
  Function 
)
Value:
auto FunctionName = (Function); \
rxcpp::util::detail::unwinder<decltype(FunctionName)> UnwinderName(std::addressof(FunctionName))