MADNESS
version 0.9
|
Grossly simplified Boost-like type traits and templates. More...
#include <cstddef>
#include <stdint.h>
#include <madness/madness_config.h>
#include <madness/world/type_traits.h>
#include <madness/world/enable_if.h>
#include <madness/world/function_traits_bits.h>
Go to the source code of this file.
Classes | |
struct | madness::is_derived_from< A, B > |
True if A is derived from B and is not B. More... | |
struct | madness::is_derived_from< A, A > |
True if A is derived from B and is not B. More... | |
class | madness::Future< T > |
A future is a possibly yet unevaluated value. More... | |
struct | madness::remove_future< T > |
Boost-type-trait-like mapping of Future<T> to T. More... | |
struct | madness::remove_fcvr< T > |
struct | madness::is_serializable< T > |
This defines stuff that is serialiable by default rules ... basically anything contiguous. More... | |
class | madness::BindNullaryMemFun< T, resultT > |
Simple binder for member functions with no arguments. More... | |
class | madness::BindNullaryMemFun< T, void > |
Specialization of BindNullaryMemFun for void return. More... | |
class | madness::BindNullaryConstMemFun< T, resultT > |
Simple binder for const member functions with no arguments. More... | |
class | madness::BindNullaryConstMemFun< T, void > |
Specialization of BindNullaryConstMemFun for void return. More... | |
struct | madness::Void |
A type you can return when you want to return void ... use "return None". More... | |
struct | madness::ReturnWrapper< T > |
Wrapper so that can return something even if returning void. More... | |
struct | madness::ReturnWrapper< void > |
Wrapper so that can return something even if returning void. More... | |
class | madness::Reference< T > |
Used to provide rvalue references to support move semantics. More... | |
struct | madness::has_result_type< T > |
Namespaces | |
madness | |
Holds machinery to set up Functions/FuncImpls using various Factories and Interfaces. | |
Macros | |
#define | REMREF(TYPE) typename std::remove_reference< TYPE >::type |
Macro to make remove_reference<T> easier to use. More... | |
#define | REMCONST(TYPE) typename std::remove_const< TYPE >::type |
Macro to make remove_const<T> easier to use. More... | |
#define | REMCONSTX(TYPE) std::remove_const< TYPE >::type |
#define | RETURN_WRAPPERT(TYPE) typename madness::ReturnWrapper< TYPE >::type |
Returns TYPE unless TYPE is void when returns ReturnWrapper<void> More... | |
#define | MEMFUN_RETURNT(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::result_type |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_CONSTNESS(MEMFUN) madness::detail::memfunc_traits< MEMFUN >::constness |
#define | MEMFUN_OBJT(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::obj_type |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_ARITY(MEMFUN) madness::detail::memfunc_traits< MEMFUN >::arity |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_ARG1T(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::arg1_type |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_ARG2T(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::arg2_type |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_ARG3T(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::arg3_type |
Macro to make member function type traits easier to use. More... | |
#define | MEMFUN_ARG4T(MEMFUN) typename madness::detail::memfunc_traits< MEMFUN >::arg4_type |
Macro to make member function type traits easier to use. More... | |
#define | FUNCTION_RETURNT(FUNCTION) typename madness::detail::function_traits< FUNCTION >::result_type |
Macro to make function type traits easier to use. More... | |
#define | FUNCTION_ARITY(FUNCTION) madness::detail::function_traits< FUNCTION >::arity |
Macro to make function type traits easier to use. More... | |
#define | FUNCTION_ARG1T(FUNCTION) typename madness::detail::function_traits< FUNCTION >::arg1_type |
Macro to make function type traits easier to use. More... | |
#define | FUNCTION_ARG2T(FUNCTION) typename madness::detail::function_traits< FUNCTION >::arg2_type |
Macro to make function type traits easier to use. More... | |
#define | FUNCTION_ARG3T(FUNCTION) typename madness::detail::function_traits< FUNCTION >::arg3_type |
Macro to make function type traits easier to use. More... | |
#define | FUNCTION_ARG4T(FUNCTION) typename madness::detail::function_traits< FUNCTION >::arg4_type |
Macro to make function type traits easier to use. More... | |
#define | RESULT_OF(FUNCTION) typename madness::detail::result_of< FUNCTION >::type |
#define | IS_SAME(A, B) std::is_same< A, B > |
Macro to make is_same<T> template easier to use. More... | |
#define | IS_EQ(A, B) std::is_eq< A, B > |
Functions | |
template<class T , typename resultT > | |
BindNullaryMemFun< T, resultT > | madness::bind_nullary_mem_fun (T *t, resultT(T::*op)()) |
Factory function for BindNullaryMemFun. More... | |
template<class T , typename resultT > | |
BindNullaryConstMemFun< T, resultT > | madness::bind_nullary_mem_fun (const T *t, resultT(T::*op)() const) |
Factory function for BindNullaryConstMemFun. More... | |
Grossly simplified Boost-like type traits and templates.
#define FUNCTION_ARG1T | ( | FUNCTION | ) | typename madness::detail::function_traits< FUNCTION >::arg1_type |
Macro to make function type traits easier to use.
#define FUNCTION_ARG2T | ( | FUNCTION | ) | typename madness::detail::function_traits< FUNCTION >::arg2_type |
Macro to make function type traits easier to use.
#define FUNCTION_ARG3T | ( | FUNCTION | ) | typename madness::detail::function_traits< FUNCTION >::arg3_type |
Macro to make function type traits easier to use.
#define FUNCTION_ARG4T | ( | FUNCTION | ) | typename madness::detail::function_traits< FUNCTION >::arg4_type |
Macro to make function type traits easier to use.
#define FUNCTION_ARITY | ( | FUNCTION | ) | madness::detail::function_traits< FUNCTION >::arity |
Macro to make function type traits easier to use.
#define FUNCTION_RETURNT | ( | FUNCTION | ) | typename madness::detail::function_traits< FUNCTION >::result_type |
Macro to make function type traits easier to use.
#define IS_SAME | ( | A, | |
B | |||
) | std::is_same< A, B > |
Macro to make is_same<T> template easier to use.
#define MEMFUN_ARG1T | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::arg1_type |
Macro to make member function type traits easier to use.
#define MEMFUN_ARG2T | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::arg2_type |
Macro to make member function type traits easier to use.
#define MEMFUN_ARG3T | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::arg3_type |
Macro to make member function type traits easier to use.
#define MEMFUN_ARG4T | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::arg4_type |
Macro to make member function type traits easier to use.
#define MEMFUN_ARITY | ( | MEMFUN | ) | madness::detail::memfunc_traits< MEMFUN >::arity |
Macro to make member function type traits easier to use.
#define MEMFUN_CONSTNESS | ( | MEMFUN | ) | madness::detail::memfunc_traits< MEMFUN >::constness |
#define MEMFUN_OBJT | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::obj_type |
Macro to make member function type traits easier to use.
#define MEMFUN_RETURNT | ( | MEMFUN | ) | typename madness::detail::memfunc_traits< MEMFUN >::result_type |
Macro to make member function type traits easier to use.
Referenced by madness::WorldContainer< keyT, nodeT >::send(), and madness::WorldContainer< keyT, nodeT >::task().
#define REMCONST | ( | TYPE | ) | typename std::remove_const< TYPE >::type |
Macro to make remove_const<T> easier to use.
#define REMCONSTX | ( | TYPE | ) | std::remove_const< TYPE >::type |
#define REMREF | ( | TYPE | ) | typename std::remove_reference< TYPE >::type |
Macro to make remove_reference<T> easier to use.
#define RESULT_OF | ( | FUNCTION | ) | typename madness::detail::result_of< FUNCTION >::type |
#define RETURN_WRAPPERT | ( | TYPE | ) | typename madness::ReturnWrapper< TYPE >::type |
Returns TYPE unless TYPE is void when returns ReturnWrapper<void>