Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
type_info.hpp File Reference
#include <helios/utils/hash.hpp>
#include <algorithm>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <string_view>
#include <type_traits>

Go to the source code of this file.

Classes

struct  helios::utils::details::FixedString< N >
 A fixed-size string that can be constructed at compile time. More...
class  helios::utils::TypeIndex
class  helios::utils::TypeId
struct  std::hash< helios::utils::TypeId >
struct  std::hash< helios::utils::TypeIndex >

Namespaces

namespace  helios
namespace  helios::utils
namespace  helios::utils::details
namespace  std
 STL namespace.

Macros

#define HELIOS_HAS_REFLECTION   0

Functions

template<typename T>
consteval std::string_view helios::utils::details::ExtractTypeName () noexcept
 Extracts the type name of T from the compiler-specific function signature.
consteval size_t helios::utils::details::CountQualifiers (std::string_view full_name) noexcept
 Counts the number of qualifiers (namespaces and class scopes) in a fully qualified type name.
constexpr std::string_view helios::utils::details::ExtractUnqualifiedName (std::string_view full_name) noexcept
 Extracts the unqualified type name from a fully qualified type name.
template<typename T>
consteval const char * helios::utils::details::GetFullTypeNameCString () noexcept
 Retrieves a null-terminated fully qualified type name for T.
template<typename T>
constexpr std::string_view helios::utils::details::GetFullTypeName () noexcept
 Retrieves the fully qualified type name of T.
template<typename T>
constexpr std::string_view helios::utils::details::GetUnqualifiedTypeName () noexcept
 Retrieves the unqualified type name of T.
template<typename T>
consteval size_t helios::utils::details::ComputeTypeHash () noexcept
 Computes a hash value for the type T based on its fully qualified name.
template<typename T>
consteval bool helios::utils::details::IsLambdaType () noexcept
 Detects whether T is a lambda closure type.
template<typename T>
consteval bool helios::utils::details::IsFunctorType () noexcept
 Detects whether T is a regular functor type (not a lambda).
constexpr bool helios::utils::operator== (const TypeId &lhs, TypeIndex rhs) noexcept
 Compares a TypeId with a TypeIndex for equality.
constexpr std::strong_ordering helios::utils::operator<=> (const TypeId &lhs, TypeIndex rhs) noexcept
 Compares a TypeId with a TypeIndex for ordering.
constexpr bool helios::utils::operator== (TypeIndex lhs, const TypeId &rhs) noexcept
 Compares a TypeIndex with a TypeId for equality.
constexpr std::strong_ordering helios::utils::operator<=> (TypeIndex lhs, const TypeId &rhs) noexcept
 Compares a TypeIndex with a TypeId for ordering.
template<typename T>
constexpr std::string_view helios::utils::TypeNameOf () noexcept
 Retrieves the unqualified type name of T.
template<typename T>
constexpr std::string_view helios::utils::TypeNameOf (const T &) noexcept
 Retrieves the unqualified type name of the type of the given instance.
template<typename T>
constexpr std::string_view helios::utils::QualifiedTypeNameOf () noexcept
 Retrieves the fully qualified type name of T.
template<typename T>
constexpr std::string_view helios::utils::QualifiedTypeNameOf (const T &) noexcept
 Retrieves the fully qualified type name of the type of the given instance.

Variables

template<typename T>
constexpr auto helios::utils::details::kTypeNameStorage

Macro Definition Documentation

◆ HELIOS_HAS_REFLECTION

#define HELIOS_HAS_REFLECTION   0

Definition at line 21 of file type_info.hpp.