28 template<std::
integral T>
35 UID() : value_{allocate_next_id()}
45 value_ = allocate_next_id();
53 explicit constexpr operator bool()
const
61 static constinit std::atomic<element_type> g_next_available_id;
65 return g_next_available_id.fetch_add(1, std::memory_order_relaxed);
81struct std::hash<
osc::UID> final {
84 return static_cast<size_t>(
id.get());
constexpr element_type get() const
Definition uid.h:48
static constexpr UID empty()
Definition uid.h:23
static constexpr UID invalid()
Definition uid.h:18
static constexpr UID from_int_unchecked(T i)
Definition uid.h:30
void reset()
Definition uid.h:43
constexpr UID(UID &&) noexcept=default
friend auto operator<=>(const UID &, const UID &)=default
intptr_t element_type
Definition uid.h:16
constexpr UID(const UID &)=default
Definition custom_decoration_generator.h:5
std::ostream & operator<<(std::ostream &, const Object &)
constexpr U to(T &&value)
Definition conversion.h:56
size_t operator()(const osc::UID &id) const noexcept
Definition uid.h:82