Refureku v2.2.0
C++17 runtime reflection library.
Archetype.h
1
8#pragma once
9
10#include "Refureku/TypeInfo/Entity/Entity.h"
11#include "Refureku/TypeInfo/EAccessSpecifier.h"
12
13namespace rfk
14{
15 class Archetype : public Entity
16 {
17 public:
18 Archetype(Archetype&&) = delete;
19
26 RFK_NODISCARD REFUREKU_API
27 EAccessSpecifier getAccessSpecifier() const noexcept;
28
34 RFK_NODISCARD REFUREKU_API
35 std::size_t getMemorySize() const noexcept;
36
42 REFUREKU_API
43 void setAccessSpecifier(EAccessSpecifier access) noexcept;
44
45 protected:
46 //Forward declaration
47 class ArchetypeImpl;
48
49 REFUREKU_INTERNAL Archetype(ArchetypeImpl* implementation) noexcept;
50 REFUREKU_INTERNAL ~Archetype() noexcept;
51
52 RFK_GEN_GET_PIMPL(ArchetypeImpl, Entity::getPimpl())
53 };
54
55 REFUREKU_TEMPLATE_API(rfk::Allocator<Archetype const*>);
56 REFUREKU_TEMPLATE_API(rfk::Vector<Archetype const*, rfk::Allocator<Archetype const*>>);
57}
Definition: Allocator.h:19
Definition: Archetype.h:16
RFK_NODISCARD REFUREKU_API EAccessSpecifier getAccessSpecifier() const noexcept
Get the access specifier of the archetype if it is nested in a struct or class. If the archetype is n...
REFUREKU_API void setAccessSpecifier(EAccessSpecifier access) noexcept
Set the access specifier of the archetype in its outer struct/class.
RFK_NODISCARD REFUREKU_API std::size_t getMemorySize() const noexcept
Get the memory size of an instance of the archetype, as the operator sizeof(type) would do.
Definition: Entity.h:29
Definition: Vector.h:19
Definition: Allocator.h:16