13#include "Refureku/TypeInfo/Functions/ICallable.h"
17 template <
typename CallerType,
typename FunctionPrototype>
20 template <
typename CallerType,
typename ReturnType,
typename... ArgTypes>
24 using FunctionPrototype = ReturnType (CallerType::*)(ArgTypes...);
25 using ConstFunctionPrototype = ReturnType (CallerType::*)(ArgTypes...)
const;
27#if (defined(_WIN32) || defined(_WIN64))
28 std::size_t _originalFunctionSize = 0u;
34 FunctionPrototype _function =
nullptr;
35 ConstFunctionPrototype _constFunction;
45#if (defined(_WIN32) || defined(_WIN64))
46 std::size_t getOriginalFunctionSize()
const noexcept;
57 ReturnType
operator()(CallerType& caller, ArgTypes&&... args)
const;
67 ReturnType
operator()(CallerType
const& caller, ArgTypes&&... args)
const;
70 #include "Refureku/TypeInfo/Functions/MemberFunction.inl"
Definition: ICallable.h:13
ReturnType operator()(CallerType const &caller, ArgTypes &&... args) const
Call the underlying function with on the provided caller forwarding the provided arguments.
ReturnType operator()(CallerType &caller, ArgTypes &&... args) const
Call the underlying function with on the provided caller forwarding the provided arguments.
Definition: MemberFunction.h:18
Definition: Allocator.h:16