12 _head.next = std::exchange(
other._head.next,
nullptr);
13 _tail = std::exchange(
other._tail, &
other._head);
20 node.next = _head.next;
32 YACLIB_DEBUG((_head.
next ==
nullptr) != (_tail == &_head),
"List::Empty invariant is failed");
33 return _head.
next ==
nullptr;
40 if (_head.
next ==
nullptr) {
bool Empty() const noexcept
Node & PopFront() noexcept
void PushFront(Node &node) noexcept
void PushBack(Node &node) noexcept
#define YACLIB_DEBUG(cond, message)
#define YACLIB_ASSERT(cond)
Contract< V, E > MakeContract()
Creates related future and promise.
Node class, used in intrusive data structure.