Refureku v2.2.0
C++17 runtime reflection library.
MethodBase.h
1
8#pragma once
9
10#include "Refureku/TypeInfo/Functions/FunctionBase.h"
11#include "Refureku/TypeInfo/Functions/EMethodFlags.h"
12
13namespace rfk
14{
15 class MethodBase : public FunctionBase
16 {
17 public:
26 RFK_NODISCARD REFUREKU_API bool hasSameSignature(MethodBase const& other) const noexcept;
27
33 RFK_NODISCARD REFUREKU_API bool isStatic() const noexcept;
34
40 RFK_NODISCARD REFUREKU_API bool isInline() const noexcept;
41
47 RFK_NODISCARD REFUREKU_API bool isVirtual() const noexcept;
48
54 RFK_NODISCARD REFUREKU_API bool isPureVirtual() const noexcept;
55
62 RFK_NODISCARD REFUREKU_API bool isOverride() const noexcept;
63
70 RFK_NODISCARD REFUREKU_API bool isFinal() const noexcept;
71
77 RFK_NODISCARD REFUREKU_API bool isConst() const noexcept;
78
84 RFK_NODISCARD REFUREKU_API EMethodFlags getFlags() const noexcept;
85
91 RFK_NODISCARD REFUREKU_API EAccessSpecifier getAccess() const noexcept;
92
93 //Keep parent FunctionBase::hasSameSignature<> template method
95
96 protected:
97 //Forward declaration
98 class MethodBaseImpl;
99
100 REFUREKU_INTERNAL MethodBase(MethodBaseImpl* implementation) noexcept;
101 REFUREKU_INTERNAL MethodBase(MethodBase&&) noexcept;
102 REFUREKU_INTERNAL ~MethodBase() noexcept;
103
104 RFK_GEN_GET_PIMPL(MethodBaseImpl, Entity::getPimpl())
105 };
106}
Definition: Entity.h:29
Definition: FunctionBase.h:17
Definition: MethodBase.h:16
RFK_NODISCARD REFUREKU_API bool isPureVirtual() const noexcept
Check if this method is pure virtual.
RFK_NODISCARD REFUREKU_API bool isOverride() const noexcept
Check if this method is override-qualified. WARNING: An overriding method not explicitly qualified wi...
RFK_NODISCARD REFUREKU_API bool hasSameSignature(MethodBase const &other) const noexcept
Check that another function has the same prototype as this function. WARNING: Non reflected type arch...
RFK_NODISCARD REFUREKU_API bool isConst() const noexcept
Check if this method is const-qualified.
RFK_NODISCARD REFUREKU_API bool isStatic() const noexcept
Check if this method is static.
RFK_NODISCARD REFUREKU_API bool isFinal() const noexcept
Check if this method is final-qualified. WARNING: An override method part of a final class will retur...
RFK_NODISCARD REFUREKU_API bool isVirtual() const noexcept
Check if this method is virtual.
RFK_NODISCARD REFUREKU_API bool isInline() const noexcept
Check if this method is marked with the inline qualifier or defined in the header file.
RFK_NODISCARD REFUREKU_API EAccessSpecifier getAccess() const noexcept
Get the access specifier of this method in its owner struct/class.
RFK_NODISCARD bool hasSameSignature() const noexcept
Check whether 2 functions have the same signature. Non reflected types are compared equal,...
RFK_NODISCARD REFUREKU_API EMethodFlags getFlags() const noexcept
Get the flags qualifying this method.
Definition: Allocator.h:16
EMethodFlags
Definition: EMethodFlags.h:17