Template Class StateTracker

Class Documentation

template<typename T>
class StateTracker

Requires: std::copy_constructible<T> && std::assignable_from<T&, T>

Caller-owned successive samples without synchronization.

Accessors borrow this tracker’s storage and must not race update(). update() assigns previous before current; throwing T assignment can leave partial state rather than rolling back.

Public Functions

inline explicit StateTracker(T initial)
inline void update(T next)
inline const T &current() const

Declaration: [[nodiscard]]

inline const T &previous() const

Declaration: [[nodiscard]]

inline bool changed() const

Declaration: [[nodiscard]]

Requires: std::equality_comparable<T>

inline auto delta() const

Declaration: [[nodiscard]]

Requires: requires(const T& a, const T& b) { a - b; }