29 using iterator = stack_type::iterator;
30 using const_iterator = stack_type::const_iterator;
37 stack(), undoPosition(0) {}
39 [[nodiscard]]
ssize_t undoDepth()
const noexcept {
43 [[nodiscard]]
ssize_t redoDepth()
const noexcept {
44 return ssize(stack) - undoPosition;
47 void clearRedo()
noexcept {
51 void push_back(
UndoElement const &element)
noexcept {A
63 template<
typename... Args>
64 void emplace(Args &&... args)
noexcept {
71 tt_assume(undoPosition != 0);
72 return stack[--undoPosition];
76 tt_assume(undoPosition < ssize(stack));
77 return stack[undoPosition++];