Refureku v2.2.0
C++17 runtime reflection library.
rfk::Type Class Reference

Public Member Functions

 Type (Type const &) noexcept
 
 Type (Type &&) noexcept
 
REFUREKU_API TypePart const & getTypePartAt (std::size_t index) const noexcept
 Get the type part at the specified index. If index is greater or equal to the type parts count, the behaviour is undefined. More...
 
REFUREKU_API std::size_t getTypePartsCount () const noexcept
 Get the number of type parts constituting this type. More...
 
REFUREKU_API bool isPointer () const noexcept
 
REFUREKU_API bool isLValueReference () const noexcept
 
REFUREKU_API bool isRValueReference () const noexcept
 
REFUREKU_API bool isCArray () const noexcept
 
REFUREKU_API bool isValue () const noexcept
 
REFUREKU_API bool isConst () const noexcept
 
REFUREKU_API bool isVolatile () const noexcept
 
REFUREKU_API uint32 getCArraySize () const noexcept
 
REFUREKU_API bool match (Type const &other) const noexcept
 
REFUREKU_API Archetype const * getArchetype () const noexcept
 Get this type's archetype. More...
 
REFUREKU_API void setArchetype (Archetype const *archetype) noexcept
 Set this type's archetype. More...
 
REFUREKU_API TypePartaddTypePart () noexcept
 Add a default-constructed type part to this type. More...
 
REFUREKU_API void optimizeMemory () noexcept
 Reallocate the underlying dynamic memory to use no more than needed.
 
REFUREKU_API bool operator== (Type const &) const noexcept
 
REFUREKU_API bool operator!= (Type const &) const noexcept
 

Friends

template<typename T >
Type const & getType () noexcept
 Retrieve the Type object from a given type. Identical types will return the same Type object (the returned object will have the same address in memory). More...
 

Member Function Documentation

◆ addTypePart()

REFUREKU_API TypePart & rfk::Type::addTypePart ( )
noexcept

Add a default-constructed type part to this type.

Returns
The newly constructed type part.

◆ getArchetype()

REFUREKU_API Archetype const * rfk::Type::getArchetype ( ) const
noexcept

Get this type's archetype.

Returns
This type's archetype.

◆ getCArraySize()

REFUREKU_API uint32 rfk::Type::getCArraySize ( ) const
noexcept
Returns
The size of the array if isCArray() is true, else 0. The behaviour is undefined if getTypePartsCount() returns 0.

◆ getTypePartAt()

REFUREKU_API TypePart const & rfk::Type::getTypePartAt ( std::size_t  index) const
noexcept

Get the type part at the specified index. If index is greater or equal to the type parts count, the behaviour is undefined.

Parameters
indexIndex of the part to get.
Returns
The type part at the specified index.

◆ getTypePartsCount()

REFUREKU_API std::size_t rfk::Type::getTypePartsCount ( ) const
noexcept

Get the number of type parts constituting this type.

Returns
The number of type parts constituting this type.

◆ isCArray()

REFUREKU_API bool rfk::Type::isCArray ( ) const
noexcept
Returns
true if this type is a c-style array ([]), else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isConst()

REFUREKU_API bool rfk::Type::isConst ( ) const
noexcept
Returns
true if this type is const qualified, else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isLValueReference()

REFUREKU_API bool rfk::Type::isLValueReference ( ) const
noexcept
Returns
true if this type is a left value reference type (&), else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isPointer()

REFUREKU_API bool rfk::Type::isPointer ( ) const
noexcept
Returns
true if this type is a pointer type (*), else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isRValueReference()

REFUREKU_API bool rfk::Type::isRValueReference ( ) const
noexcept
Returns
true if this type is a right value reference type (&&), else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isValue()

REFUREKU_API bool rfk::Type::isValue ( ) const
noexcept
Returns
true if this type is a value type (not a pointer, lvalue ref, rvalue ref, c-style array), else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ isVolatile()

REFUREKU_API bool rfk::Type::isVolatile ( ) const
noexcept
Returns
true if this type is volatile qualified, else false. The behaviour is undefined if getTypePartsCount() returns 0.

◆ match()

REFUREKU_API bool rfk::Type::match ( Type const &  other) const
noexcept
Parameters
otherThe other type to compare with.
Returns
true if two types match together if they represent the same type. Pointers and nullptr_t types also match together.

◆ setArchetype()

REFUREKU_API void rfk::Type::setArchetype ( Archetype const *  archetype)
noexcept

Set this type's archetype.

Parameters
archetypeThe archetype to set.

Friends And Related Function Documentation

◆ getType

template<typename T >
Type const & getType ( )
friend

Retrieve the Type object from a given type. Identical types will return the same Type object (the returned object will have the same address in memory).

Returns
The computed type.

The documentation for this class was generated from the following file: