Struct CanonicalMark

Struct Documentation

struct CanonicalMark

the canonical mark of an Expr (see Expr::is_canonical()); copying copies it, moving moves it out of the source

Public Functions

CanonicalMark() = default
inline CanonicalMark(const CanonicalMark &other) noexcept
inline CanonicalMark(CanonicalMark &&other) noexcept
inline CanonicalMark &operator=(const CanonicalMark &other) noexcept
inline CanonicalMark &operator=(CanonicalMark &&other) noexcept
inline void reset() noexcept

Public Members

std::atomic<std::uint64_t> stamp = {0}

identifies the state of the own data of an Expr (not of its subexpressions) since its last mutation; 0 if not assigned

std::atomic<std::size_t> seal = {0}

if nonzero, the digest of the validity key of the canonicalization that produced the Expr and of the stamps of its subtree