CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ReferenceTypeInfo Class Referencefinal

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

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

Public Types

enum class  Kind { LValue , RValue }
 

Public Member Functions

 ReferenceTypeInfo (const TypeIdentityHash hash, const TypeInfo &type, const Kind kind)
 
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
 
enum CeresEngine::ReferenceTypeInfo::Kind kind
 

Private Attributes

const TypeIdentityHash mIdentityHash
 
String mName
 

Additional Inherited Members

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

Member Enumeration Documentation

◆ Kind

Enumerator
LValue 
RValue 

Constructor & Destructor Documentation

◆ ReferenceTypeInfo()

CeresEngine::ReferenceTypeInfo::ReferenceTypeInfo ( const TypeIdentityHash  hash,
const TypeInfo type,
const Kind  kind 
)
explicit

Member Function Documentation

◆ access()

const void * CeresEngine::ReferenceTypeInfo::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::ReferenceTypeInfo::construct ( void target) const
finalvirtual

◆ copy()

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

◆ destroy()

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

◆ desugar()

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

Desugar the type into a raw type.

Reimplemented from CeresEngine::TypeInfo.

◆ getAlignment()

std::size_t CeresEngine::ReferenceTypeInfo::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::ReferenceTypeInfo::getIdentityHash ( ) const
overridevirtualnoexcept

Returns
The type identity hash.

Implements CeresEngine::TypeInfo.

◆ getName()

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

Implements CeresEngine::TypeInfo.

◆ getSize()

std::size_t CeresEngine::ReferenceTypeInfo::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::ReferenceTypeInfo::getType ( TypeAttribute  attribute) const
finalvirtual

Implements CeresEngine::TypeInfo.

◆ move()

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

Member Data Documentation

◆ kind

enum CeresEngine::ReferenceTypeInfo::Kind CeresEngine::ReferenceTypeInfo::kind

◆ mIdentityHash

const TypeIdentityHash CeresEngine::ReferenceTypeInfo::mIdentityHash
private

◆ mName

String CeresEngine::ReferenceTypeInfo::mName
mutableprivate

◆ type

const TypeInfo& CeresEngine::ReferenceTypeInfo::type

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