EntropyEngine::Core::TypeSystem
EntropyEngine::Core::TypeSystem
Section titled “EntropyEngine::Core::TypeSystem”Namespaces
Section titled “Namespaces”| Name |
|---|
| EntropyEngine::Core::TypeSystem::detail Internal implementation details for the reflection system. |
Classes
Section titled “Classes”| Name | |
|---|---|
| struct | EntropyEngine::Core::TypeSystem::compile_time_type_info Compile-time type information collector. |
| struct | EntropyEngine::Core::TypeSystem::_EntropyTypeRegistrar Legacy type registrar for backward compatibility. |
| class | EntropyEngine::Core::TypeSystem::TypedHandle Type-safe handle template that derives from GenericHandle. |
| class | EntropyEngine::Core::TypeSystem::TypeInfo Runtime type information container with field introspection. |
| struct | EntropyEngine::Core::TypeSystem::TypeID A cross-platform type identifier with stable hashing and comparison. |
| class | EntropyEngine::Core::TypeSystem::GenericHandle Base class for type-safe handle implementations with generation-based validation. |
| struct | EntropyEngine::Core::TypeSystem::FieldInfo Information about a reflected field in a type. |
Functions
Section titled “Functions”| Name | |
|---|---|
| template <typename T > const TypeID & | typeIdOf() Create a TypeID for a given type T. |
| template <typename T > TypeID | createTypeId() |
Functions Documentation
Section titled “Functions Documentation”function typeIdOf
Section titled “function typeIdOf”template <typename T >inline const TypeID & typeIdOf()Create a TypeID for a given type T.
Template Parameters:
- T The type to create an identifier for
Return: TypeID object uniquely identifying type T @noexcept This function never throws exceptions
This function generates a stable TypeID for any given type using boost::type_index. The resulting TypeID will be identical for the same type across different compilation units and function calls.
Template parameters and typedefs are resolved to their canonical forms:
std::stringbecomes the underlying template instantiationglm::quatbecomesglm::qua<float>- Template parameters are preserved in the name
Performance characteristics:
- O(1) hash generation
- Small string allocation for type name
- Inlined for zero function call overhead
// Basic typesauto intId = createTypeId<int>();auto floatId = createTypeId<float>();
// Template typesauto vectorId = createTypeId<std::vector<int>>();auto quatId = createTypeId<glm::quat>(); // Shows as "glm::qua<float>"
// Custom typesauto customId = createTypeId<MyCustomClass>();function createTypeId
Section titled “function createTypeId”template <typename T >inline TypeID createTypeId()Updated on 2026-01-26 at 17:14:35 -0500