10#include "Refureku/TypeInfo/Archetypes/Struct.h"
15 class TemplateParameter;
16 class TemplateArgument;
17 class ClassTemplateInstantiation;
21 using StructTemplate = ClassTemplate;
28 bool isClass)
noexcept;
39 RFK_NODISCARD REFUREKU_API
47 RFK_NODISCARD REFUREKU_API
57 template <std::
size_t ArgsCount>
69 RFK_NODISCARD REFUREKU_API
71 std::
size_t argsCount) const noexcept;
78 RFK_NODISCARD REFUREKU_API
93 void* userData) const;
118 class ClassTemplateImpl;
120 RFK_GEN_GET_PIMPL(ClassTemplateImpl,
Entity::getPimpl())
123 #include "Refureku/TypeInfo/Archetypes/Template/ClassTemplate.inl"
Definition: ClassTemplate.h:24
REFUREKU_API void unregisterTemplateInstantiation(ClassTemplateInstantiation const &inst) noexcept
Unregister an instantiation of this class template.
RFK_NODISCARD REFUREKU_API std::size_t getTemplateParametersCount() const noexcept
Get the number of template parameters for this class template.
REFUREKU_API void registerTemplateInstantiation(ClassTemplateInstantiation const &inst) noexcept
Register an instantiation of this class template.
REFUREKU_API void addTemplateParameter(TemplateParameter const ¶m) noexcept
Append a template parameter to the list of template parameters.
RFK_NODISCARD ClassTemplateInstantiation const * getTemplateInstantiation(TemplateArgument const *(&args)[ArgsCount]) const noexcept
Get an existing template instantiation corresponding to the provided arguments.
RFK_NODISCARD REFUREKU_API TemplateParameter const & getTemplateParameterAt(std::size_t index) const noexcept
Retrieve the template parameter at the given index. If index is greater or equal to getTemplateParame...
RFK_NODISCARD REFUREKU_API std::size_t getTemplateInstantiationsCount() const noexcept
Get the number of instantiations (with different template parameters) of this class template within t...
REFUREKU_API bool foreachTemplateInstantiation(Visitor< ClassTemplateInstantiation > visitor, void *userData) const
Execute the given visitor on all template instantiations of this class.
Definition: ClassTemplateInstantiation.h:23
Definition: TemplateArgument.h:19
Definition: TemplateParameter.h:18
Definition: Allocator.h:16
bool(*)(T const &value, void *userData) Visitor
Visitor function.
Definition: Visitor.h:21