EasyLocalpp  3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FastFunc.hh File Reference
#include <cstring>
#include <type_traits>
#include <cassert>
#include <cstddef>
#include <memory>
#include <new>
#include <utility>
Include dependency graph for FastFunc.hh:

Go to the source code of this file.

Classes

union  EasyLocal::Core::Impl::Internal::HorribleUnion< TOut, TIn >
 
struct  EasyLocal::Core::Impl::Internal::SimplifyMemFunc< TN >
 
struct  EasyLocal::Core::Impl::Internal::SimplifyMemFunc< SingleMemFuncPtrSize >
 
struct  EasyLocal::Core::Impl::Internal::Closure< TReturn, TArgs >
 
class  EasyLocal::Core::Impl::Internal::FastFuncImpl< TReturn, TArgs >
 
struct  EasyLocal::Core::Impl::MemFuncToFunc< T >
 
struct  EasyLocal::Core::Impl::MemFuncToFunc< TReturn(TThis::*)(TArgs...) const >
 
class  EasyLocal::Core::Impl::FastFunc< T >
 
class  EasyLocal::Core::Impl::FastFunc< TReturn(TArgs...)>
 

Namespaces

 EasyLocal
 
 EasyLocal::Core
 
 EasyLocal::Core::Impl
 
 EasyLocal::Core::Impl::Internal
 

Macros

#define ENABLE_IF_CONV_TO_FUN_PTR(x)   typename std::enable_if<std::is_constructible<typename MemFuncToFunc<decltype(&std::decay<x>::type::operator())>::Type, x>::value>::type* = nullptr
 
#define ENABLE_IF_NOT_CONV_TO_FUN_PTR(x)   typename std::enable_if<!std::is_constructible<typename MemFuncToFunc<decltype(&std::decay<x>::type::operator())>::Type, x>::value>::type* = nullptr
 
#define ENABLE_IF_SAME_TYPE(x, y)   typename = typename std::enable_if<!std::is_same<x, typename std::decay<y>::type>{}>::type
 

Typedefs

using EasyLocal::Core::Impl::Internal::AnyPtrThis = AnyClass *
 
using EasyLocal::Core::Impl::Internal::AnyPtrFunc ) = void(AnyClass::*)(
 
template<typename TReturn = void, typename... TArgs>
using EasyLocal::Core::Impl::Internal::AnyPtrFuncT = TReturn(AnyClass::*)(TArgs...)
 
template<typename TReturn = void, typename... TArgs>
using EasyLocal::Core::Impl::Internal::AnyPtrStaticFuncT = TReturn(*)(TArgs...)
 

Functions

template<class TOut , class TIn >
TOut EasyLocal::Core::Impl::Internal::horrible_cast (TIn mIn) noexcept
 
template<class TOut , class TIn >
TOut EasyLocal::Core::Impl::Internal::unsafe_horrible_cast (TIn mIn) noexcept
 

Variables

constexpr std::size_t EasyLocal::Core::Impl::Internal::SingleMemFuncPtrSize {sizeof(void(AnyClass::*)())}
 

Macro Definition Documentation

#define ENABLE_IF_CONV_TO_FUN_PTR (   x)    typename std::enable_if<std::is_constructible<typename MemFuncToFunc<decltype(&std::decay<x>::type::operator())>::Type, x>::value>::type* = nullptr

Definition at line 119 of file FastFunc.hh.

#define ENABLE_IF_NOT_CONV_TO_FUN_PTR (   x)    typename std::enable_if<!std::is_constructible<typename MemFuncToFunc<decltype(&std::decay<x>::type::operator())>::Type, x>::value>::type* = nullptr

Definition at line 120 of file FastFunc.hh.

#define ENABLE_IF_SAME_TYPE (   x,
 
)    typename = typename std::enable_if<!std::is_same<x, typename std::decay<y>::type>{}>::type

Definition at line 121 of file FastFunc.hh.