CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ConstTypeInfo Class Reference

#include <CeresEngine/Reflection/TypeInfo.core.hpp>

Inheritance diagram for CeresEngine::ConstTypeInfo:
CeresEngine::TypeInfo CeresEngine::ConstructibleTypeTrait CeresEngine::DestructibleTypeTrait CeresEngine::CopyableTypeTrait CeresEngine::MovableTypeTrait

Public Member Functions

 ConstTypeInfo (const TypeIdentityHash hash, const TypeInfo &type)
 
StringView getName () const noexcept override
 
std::size_t getSize () const noexcept final
 
std::size_t getAlignment () const noexcept final
 
TypeIdentityHash getIdentityHash () const noexcept override
 
const TypeInfodesugar () const final
 Desugar the type into a raw type.
 
const voidaccess (const void *target) const final
 Provides access to the object.
 
void construct (void *target) const final
 
void destroy (void *target) const final
 
void copy (void *target, const void *source) const final
 
void move (void *target, void *source) const final
 
const TypeInfogetType (TypeAttribute attribute) const final
 
- Public Member Functions inherited from CeresEngine::TypeInfo
virtual ~TypeInfo ()=default
 
TypeID getID () const noexcept
 
template<typename T >
bool is () const noexcept
 
template<typename T >
const Tas () const noexcept
 
template<typename T >
const Tbeing () const noexcept
 
const TypeInforemoveReference () const
 
const TypeInforemovePointer () const
 
const TypeInforemoveConst () const
 

Public Attributes

const TypeInfotype
 

Private Attributes

const TypeIdentityHash mIdentityHash
 
String mName
 

Additional Inherited Members

- Protected Member Functions inherited from CeresEngine::ConstructibleTypeTrait
 ~ConstructibleTypeTrait ()=default
 
- Protected Member Functions inherited from CeresEngine::DestructibleTypeTrait
 ~DestructibleTypeTrait ()=default
 
- Protected Member Functions inherited from CeresEngine::CopyableTypeTrait
 ~CopyableTypeTrait ()=default
 
- Protected Member Functions inherited from CeresEngine::MovableTypeTrait
 ~MovableTypeTrait ()=default
 

Constructor & Destructor Documentation

◆ ConstTypeInfo()

CeresEngine::ConstTypeInfo::ConstTypeInfo ( const TypeIdentityHash  hash,
const TypeInfo type 
)

Member Function Documentation

◆ access()

const void * CeresEngine::ConstTypeInfo::access ( const void target) const
finalvirtual

Provides access to the object.

Returns a pointer to the object from the given storage at target.

Parameters
targetA pointer to the raw memory where the object is stored on.
Returns
A raw pointer to the object on the given storage address.

Reimplemented from CeresEngine::TypeInfo.

◆ construct()

void CeresEngine::ConstTypeInfo::construct ( void target) const
finalvirtual

◆ copy()

void CeresEngine::ConstTypeInfo::copy ( void target,
const void source 
) const
finalvirtual

◆ destroy()

void CeresEngine::ConstTypeInfo::destroy ( void target) const
finalvirtual

◆ desugar()

const TypeInfo & CeresEngine::ConstTypeInfo::desugar ( ) const
finalvirtual

Desugar the type into a raw type.

Reimplemented from CeresEngine::TypeInfo.

◆ getAlignment()

std::size_t CeresEngine::ConstTypeInfo::getAlignment ( ) const
finalvirtualnoexcept

Returns
The size of the type, in bytes. Useful when allocating memory to construct an instance.

Implements CeresEngine::TypeInfo.

◆ getIdentityHash()

TypeIdentityHash CeresEngine::ConstTypeInfo::getIdentityHash ( ) const
overridevirtualnoexcept

Returns
The type identity hash.

Implements CeresEngine::TypeInfo.

◆ getName()

StringView CeresEngine::ConstTypeInfo::getName ( ) const
overridevirtualnoexcept

Implements CeresEngine::TypeInfo.

◆ getSize()

std::size_t CeresEngine::ConstTypeInfo::getSize ( ) const
finalvirtualnoexcept

Returns
The size of the type, in bytes. Useful when allocating memory to construct an instance.

Implements CeresEngine::TypeInfo.

◆ getType()

const TypeInfo & CeresEngine::ConstTypeInfo::getType ( TypeAttribute  attribute) const
finalvirtual

Implements CeresEngine::TypeInfo.

◆ move()

void CeresEngine::ConstTypeInfo::move ( void target,
void source 
) const
finalvirtual

Member Data Documentation

◆ mIdentityHash

const TypeIdentityHash CeresEngine::ConstTypeInfo::mIdentityHash
private

◆ mName

String CeresEngine::ConstTypeInfo::mName
mutableprivate

◆ type

const TypeInfo& CeresEngine::ConstTypeInfo::type

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