Refureku v2.2.0
C++17 runtime reflection library.
Property.h
1
8#pragma once
9
10#include "Refureku/Config.h"
11#include "Refureku/Object.h"
12#include "Refureku/Containers/Vector.h"
13#include "Refureku/TypeInfo/Entity/EEntityKind.h"
14#include "Refureku/Misc/Visitor.h"
15#include "Refureku/Misc/Predicate.h"
16
17namespace rfk
18{
22 class REFUREKU_API Property : public Object
23 {
24 protected:
25 Property() = default;
26
27 public:
32
34 static constexpr bool shouldInherit = true;
35
37 static constexpr bool allowMultiple = false;
38
44 virtual rfk::EEntityKind getTargetEntityKind() const noexcept;
45
51 virtual bool getShouldInherit() const noexcept;
52
58 virtual bool getAllowMultiple() const noexcept;
59 };
60
61 REFUREKU_TEMPLATE_API(rfk::Allocator<Property const*>);
62 REFUREKU_TEMPLATE_API(rfk::Vector<Property const*, rfk::Allocator<Property const*>>);
63}
Definition: Allocator.h:19
Definition: Object.h:21
Base class to inherit from to define new properties.
Definition: Property.h:23
virtual rfk::EEntityKind getTargetEntityKind() const noexcept
Getter for targetEntityKind of the concrete Property type.
Definition: Vector.h:19
Definition: Allocator.h:16
EEntityKind
Definition: EEntityKind.h:20