0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-01 00:08:22 +02:00

ircd::ctx: Enforce semantics on ctx::list.

This commit is contained in:
Jason Volk 2018-01-17 02:49:55 -08:00
parent 4727e93f8a
commit 59e921d453

View file

@ -84,9 +84,34 @@ class ircd::ctx::list
void remove(ctx *const & = current);
list() = default;
list(list &&) noexcept;
list(const list &) = delete;
list &operator=(list &&) noexcept;
list &operator=(const list &) = delete;
~list() noexcept;
};
inline
ircd::ctx::list::list(list &&o)
noexcept
:head{std::move(o.head)}
,tail{std::move(o.tail)}
{
o.head = nullptr;
o.tail = nullptr;
}
inline
ircd::ctx::list &
ircd::ctx::list::operator=(list &&o)
noexcept
{
this->~list();
std::swap(head, o.head);
std::swap(tail, o.tail);
return *this;
}
inline
ircd::ctx::list::~list()
noexcept