10#include "Refureku/TypeInfo/Functions/FunctionBase.h"
11#include "Refureku/TypeInfo/Functions/EFunctionFlags.h"
12#include "Refureku/TypeInfo/Functions/NonMemberFunction.h"
19 REFUREKU_API
Function(
char const* name,
21 Type const& returnType,
43 template <
typename ReturnType = void,
typename... ArgTypes>
44 ReturnType
invoke(ArgTypes&&... args)
const;
68 template <
typename ReturnType = void,
typename... ArgTypes>
76 RFK_NODISCARD REFUREKU_API
bool isInline() const noexcept;
83 RFK_NODISCARD REFUREKU_API
bool isStatic() const noexcept;
96 RFK_GEN_GET_PIMPL(FunctionImpl,
Entity::getPimpl())
108 template <typename ReturnType, typename... ArgTypes>
109 ReturnType internalInvoke(ArgTypes&&... args) const;
113 template <auto FuncPtr>
119 #include "Refureku/TypeInfo/Functions/Function.inl"
Definition: Allocator.h:19
Definition: FunctionBase.h:17
Definition: Function.h:17
ReturnType invoke(ArgTypes &&... args) const
Call the function with the forwarded argument(s) if any, and return the result. Providing bad return ...
RFK_NODISCARD REFUREKU_API bool isStatic() const noexcept
Check whether this function is static or not.
RFK_NODISCARD REFUREKU_API EFunctionFlags getFlags() const noexcept
Get the flags qualifying this function.
RFK_NODISCARD REFUREKU_API bool isInline() const noexcept
Check whether this function is inline or not.
ReturnType checkedInvoke(ArgTypes &&... args) const
Call the function with the forwarded argument(s) if any, and return the result. The return type and a...
Definition: ICallable.h:13
Definition: Allocator.h:16
EFunctionFlags
Definition: EFunctionFlags.h:17
Function const * getFunction() noexcept