31 template <
typename Base >
42 *
this = std::move( other );
51 if ( prev_ !=
nullptr ) {
53 other.prev_ =
nullptr;
57 if ( next_ !=
nullptr ) {
59 other.next_ =
nullptr;
68 if ( next_ !=
nullptr )
89 while ( n !=
nullptr ) {
102 while ( n !=
nullptr ) {
118 if ( prev_ ==
nullptr )
125 if ( prev_ !=
nullptr )
126 prev_->next_ = next_;
127 if ( next_ !=
nullptr )
128 next_->prev_ = prev_;
136 template <
typename T,
typename Base >
142 template <
typename... Args >
144 : item_( std::forward< Args >(
args )... )
153 [[nodiscard]] T
const&
get()
const
Definition: linked_list.h:33
void link_as_next(linked_list_node_base< Base > &node)
Definition: linked_list.h:65
linked_list_node_base & operator=(linked_list_node_base &&other) noexcept
Definition: linked_list.h:45
virtual Base & operator*()=0
linked_list_node_base(linked_list_node_base &&other) noexcept
Definition: linked_list.h:40
linked_list_node_base * get_next()
Definition: linked_list.h:81
virtual Base * operator->()=0
std::size_t count_next() const
Definition: linked_list.h:98
linked_list_node_base * get_next(std::size_t id)
Definition: linked_list.h:86
virtual ~linked_list_node_base()
Definition: linked_list.h:123
linked_list_node_base & operator=(linked_list_node_base const &)=delete
linked_list_node_base(linked_list_node_base const &)=delete
linked_list_node_base()=default
virtual Base const & operator*() const =0
linked_list_node_base * get_prev(std::size_t const id)
Definition: linked_list.h:114
linked_list_node_base * get_prev()
Definition: linked_list.h:109
virtual Base const * operator->() const =0
Definition: linked_list.h:138
Base * operator->() override
Definition: linked_list.h:168
T const & get() const
Definition: linked_list.h:153
linked_list_node(Args &&... args)
Definition: linked_list.h:143
Base const & operator*() const override
Definition: linked_list.h:163
Base & operator*() override
Definition: linked_list.h:158
Base const * operator->() const override
Definition: linked_list.h:173
linked_list_node(linked_list_node &&other) noexcept=default
linked_list_node()=default
T & get()
Definition: linked_list.h:148
linked_list_node & operator=(linked_list_node &&other) noexcept=default
MIT License.
Definition: impl.h:31
Args const & args
Definition: min_max.h:83