17 constexpr static auto tag = Tag;
19 constexpr long_tagged_id()
noexcept =
default;
20 constexpr long_tagged_id(long_tagged_id
const&)
noexcept =
default;
21 constexpr long_tagged_id(long_tagged_id&&)
noexcept =
default;
22 constexpr long_tagged_id& operator=(long_tagged_id
const&)
noexcept =
default;
23 constexpr long_tagged_id& operator=(long_tagged_id&&)
noexcept =
default;
25 constexpr long_tagged_id(nullptr_t) noexcept : _value() {}
26 constexpr long_tagged_id& operator=(nullptr_t)
noexcept
32 template<
typename... Args>
33 constexpr explicit long_tagged_id(Args
const&...args) noexcept :
36 auto tmp = (... ^ sip_hash24x2<Args>{}(args));
37 _value = std::bit_cast<uint128_t>(tmp);
44 constexpr long_tagged_id& operator=(T
const& other)
noexcept
46 _value = std::bit_cast<uint128_t>(sip_hash24x2<std::decay_t<T>>{}(other));
52 [[nodiscard]]
constexpr bool empty()
const noexcept
57 constexpr operator bool()
const noexcept
62 [[nodiscard]]
constexpr friend bool operator==(long_tagged_id
const& lhs, long_tagged_id
const& rhs)
noexcept =
default;
unsigned __int128 uint128_t
Unsigned 128 bit integer.
Definition architecture.hpp:184