implemented push/pop_back/front for const_list
This commit is contained in:
parent
09ba7d5783
commit
fc59dd2404
|
|
@ -137,21 +137,11 @@ namespace cc {
|
||||||
constexpr iterator erase(const_iterator pos);
|
constexpr iterator erase(const_iterator pos);
|
||||||
constexpr iterator erase(const_iterator first, const_iterator last);
|
constexpr iterator erase(const_iterator first, const_iterator last);
|
||||||
|
|
||||||
constexpr void push_back(const value_type& value);
|
constexpr void push_back(value_type& value);
|
||||||
constexpr void push_back(value_type&& value);
|
|
||||||
|
|
||||||
template<typename ...Args>
|
|
||||||
constexpr reference emplace_back(Args&&... args);
|
|
||||||
|
|
||||||
constexpr void pop_back();
|
constexpr void pop_back();
|
||||||
|
|
||||||
constexpr void push_front(const value_type& value);
|
constexpr void push_front(value_type& value);
|
||||||
constexpr void push_front(value_type&& value);
|
constexpr void pop_front();
|
||||||
|
|
||||||
template<typename ...Args>
|
|
||||||
constexpr reference emplace_front(Args&&... args);
|
|
||||||
|
|
||||||
constexpr void pop_front();
|
|
||||||
|
|
||||||
constexpr void resize(size_type count);
|
constexpr void resize(size_type count);
|
||||||
constexpr void resize(size_type count, const value_type& value);
|
constexpr void resize(size_type count, const value_type& value);
|
||||||
|
|
@ -387,6 +377,34 @@ namespace cc {
|
||||||
return next;
|
return next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename Node>
|
||||||
|
constexpr void const_list<Node>::push_back(value_type &value)
|
||||||
|
{
|
||||||
|
_tail.push_before(std::addressof(value));
|
||||||
|
++_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename Node>
|
||||||
|
constexpr void const_list<Node>::pop_back()
|
||||||
|
{
|
||||||
|
_tail._prev->unlink();
|
||||||
|
--_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename Node>
|
||||||
|
constexpr void const_list<Node>::push_front(value_type &value)
|
||||||
|
{
|
||||||
|
_tail._next->push_before(std::addressof(value));
|
||||||
|
++_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename Node>
|
||||||
|
constexpr void const_list<Node>::pop_front()
|
||||||
|
{
|
||||||
|
_tail._next->unlink();
|
||||||
|
--_size;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename D>
|
template<typename D>
|
||||||
constexpr const_list_node<D>::const_list_node(const const_list_node &other) noexcept
|
constexpr const_list_node<D>::const_list_node(const const_list_node &other) noexcept
|
||||||
: _delete_cb(other._delete_cb)
|
: _delete_cb(other._delete_cb)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue