13#ifndef roofit_roofitcore_RooFit_UniqueId_h
14#define roofit_roofitcore_RooFit_UniqueId_h
88 class UniqueId_t = std::remove_reference_t<
decltype(std::declval<std::remove_pointer_t<Class>>().uniqueId())>>
91 return ptr ? ptr->uniqueId() : UniqueId_t::nullid();
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
UniqueId_t const & getUniqueId(Class const *ptr)
A helper function to replace pointer comparisons with UniqueId comparisons.
A UniqueId can be added as a class member to enhance any class with a unique identifier for each inst...
bool operator==(UniqueId const &other) const
UniqueId & operator=(UniqueId &&)=delete
static std::atomic< Value_t > counter
The static object counter to get the next ID value.
UniqueId(const UniqueId &)=delete
UniqueId()
Create a new UniqueId with the next value from the static counter.
Value_t _val
Numerical value of the ID.
UniqueId(UniqueId &&)=delete
static UniqueId const & nullid()
Get an ID that is less than the ID of any object (similar to nullptr).
UniqueId & operator=(const UniqueId &)=delete
bool operator<(UniqueId const &other) const
static constexpr Value_t nullval
The value of the nullid.
constexpr Value_t value() const
Return numerical value of ID.