2#ifndef LIBSBX_UTILITY_TYPE_ID_HPP_
3#define LIBSBX_UTILITY_TYPE_ID_HPP_
8namespace sbx::utility {
12template<
typename Scope>
14 [[nodiscard]]
static auto next()
noexcept -> std::uint32_t {
15 static auto id = std::uint32_t{};
30template<
typename Scope,
typename Type>
41 [[nodiscard]]
static auto value() noexcept -> std::uint32_t {
47 [[nodiscard]]
constexpr operator std::uint32_t() const noexcept {
58template<
typename Type>
59using type_id = scoped_type_id<detail::default_type_id_scope, Type>;
Definition: type_id.hpp:20
Definition: type_id.hpp:13
A scoped type ID generator. Allows for generating unique IDs for types within a specific scope.
Definition: type_id.hpp:31
static auto value() noexcept -> std::uint32_t
Generates a unique ID for the type.
Definition: type_id.hpp:41