diff --git a/include/ircd/util.h b/include/ircd/util.h index 26003d1b2..05aaa0c86 100644 --- a/include/ircd/util.h +++ b/include/ircd/util.h @@ -1022,13 +1022,23 @@ struct unique_iterator {} unique_iterator(const unique_iterator &) = delete; - unique_iterator(unique_iterator &&o) + unique_iterator(unique_iterator &&o) noexcept :c{std::move(o.c)} ,it{std::move(o.it)} { o.c = nullptr; } + unique_iterator &operator=(const unique_iterator &) = delete; + unique_iterator &operator=(unique_iterator &&o) noexcept + { + this->~unique_iterator(); + c = std::move(o.c); + it = std::move(o.it); + o.c = nullptr; + return *this; + } + ~unique_iterator() noexcept { if(c)