Refureku v2.2.0
C++17 runtime reflection library.
TemplateArgument.h
1
8#pragma once
9
10#include "Refureku/Config.h"
11#include "Refureku/Misc/Pimpl.h"
12#include "Refureku/Misc/GetPimplMacro.h"
13
14namespace rfk
15{
16 enum class ETemplateParameterKind;
17
19 {
20 public:
21 TemplateArgument(TemplateArgument const&) = delete;
23
29 RFK_NODISCARD REFUREKU_API ETemplateParameterKind getKind() const noexcept;
30
38 RFK_NODISCARD REFUREKU_API bool operator==(TemplateArgument const& other) const noexcept;
39 RFK_NODISCARD REFUREKU_API bool operator!=(TemplateArgument const& other) const noexcept;
40
41 protected:
42 //Forward declaration
43 class TemplateArgumentImpl;
44
45 REFUREKU_INTERNAL TemplateArgument(TemplateArgumentImpl* implementation) noexcept;
46 REFUREKU_INTERNAL ~TemplateArgument() noexcept;
47
48 RFK_GEN_GET_PIMPL(TemplateArgumentImpl, _pimpl.get())
49
50 private:
52 Pimpl<TemplateArgumentImpl> _pimpl;
53 };
54}
Definition: Pimpl.h:20
Definition: TemplateArgument.h:19
RFK_NODISCARD REFUREKU_API ETemplateParameterKind getKind() const noexcept
Get the kind of template parameter this argument is based on.
Definition: Allocator.h:16
ETemplateParameterKind
Defines the kind of a template parameter.
Definition: ETemplateParameterKind.h:16