Refureku v2.2.0
C++17 runtime reflection library.
TemplateParameter.h
1
8#pragma once
9
10#include "Refureku/Config.h"
11#include "Refureku/Misc/Pimpl.h"
12#include "Refureku/Misc/GetPimplMacro.h"
13#include "Refureku/TypeInfo/Archetypes/Template/ETemplateParameterKind.h"
14
15namespace rfk
16{
18 {
19 public:
20 TemplateParameter(TemplateParameter const&) = delete;
22
28 RFK_NODISCARD REFUREKU_API char const* getName() const noexcept;
29
38 RFK_NODISCARD REFUREKU_API ETemplateParameterKind getKind() const noexcept;
39
40 protected:
41 //Forward declaration
42 class TemplateParameterImpl;
43
44 REFUREKU_INTERNAL TemplateParameter(TemplateParameterImpl* implementation) noexcept;
45 REFUREKU_INTERNAL ~TemplateParameter() noexcept;
46
47 RFK_GEN_GET_PIMPL(TemplateParameterImpl, _pimpl.get())
48
49 private:
51 Pimpl<TemplateParameterImpl> _pimpl;
52 };
53}
Definition: Pimpl.h:20
Definition: TemplateParameter.h:18
RFK_NODISCARD REFUREKU_API char const * getName() const noexcept
Get the name of the template parameter.
RFK_NODISCARD REFUREKU_API ETemplateParameterKind getKind() const noexcept
Get the kind of this template parameter. Depending on the kind, the template parameter can safely be ...
Definition: Allocator.h:16
ETemplateParameterKind
Defines the kind of a template parameter.
Definition: ETemplateParameterKind.h:16