YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
intrusive_list.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace yaclib::detail {
6
7class List final {
8 public:
9 List& operator=(const List&) = delete;
10 List& operator=(List&&) = delete;
11 List(const List&) = delete;
12
15
18
19 [[nodiscard]] bool Empty() const noexcept;
21
22 private:
23 Node _head;
24 Node* _tail = &_head; // need for PushBack
25};
26
27} // namespace yaclib::detail
bool Empty() const noexcept
Node & PopFront() noexcept
List() noexcept=default
List(const List &)=delete
void PushFront(Node &node) noexcept
void PushBack(Node &node) noexcept
List & operator=(List &&)=delete
List & operator=(const List &)=delete
Contract< V, E > MakeContract()
Creates related future and promise.
Definition contract.hpp:25
Node class, used in intrusive data structure.
Definition node.hpp:8