YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
bidirectional_intrusive_list.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <yaclib/log.hpp>
4
5#include <cstdint>
6
7namespace yaclib::detail::fiber {
8
9struct Node {
10 Node* prev{this};
11 Node* next{this};
12
13 bool Erase();
14};
15
17 public:
18 BiList& operator=(const BiList&) = delete;
21
24
26
28
30
31 [[nodiscard]] bool Empty() const noexcept;
32
33 [[nodiscard]] Node* GetElement(std::size_t ind, bool reversed) const noexcept;
34
35 private:
36 Node _head;
37};
38
39} // namespace yaclib::detail::fiber
Node * GetElement(std::size_t ind, bool reversed) const noexcept
BiList & operator=(const BiList &)=delete
Contract< V, E > MakeContract()
Creates related future and promise.
Definition contract.hpp:25