mirror of
https://github.com/matrix-construct/construct
synced 2024-07-10 20:48:34 +02:00
ircd::util: Fix move support for the unique_iterator.
This commit is contained in:
parent
4a44d0368a
commit
bc3e4e3fce
|
@ -1022,13 +1022,23 @@ struct unique_iterator
|
||||||
{}
|
{}
|
||||||
|
|
||||||
unique_iterator(const unique_iterator &) = delete;
|
unique_iterator(const unique_iterator &) = delete;
|
||||||
unique_iterator(unique_iterator &&o)
|
unique_iterator(unique_iterator &&o) noexcept
|
||||||
:c{std::move(o.c)}
|
:c{std::move(o.c)}
|
||||||
,it{std::move(o.it)}
|
,it{std::move(o.it)}
|
||||||
{
|
{
|
||||||
o.c = nullptr;
|
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
|
~unique_iterator() noexcept
|
||||||
{
|
{
|
||||||
if(c)
|
if(c)
|
||||||
|
|
Loading…
Reference in a new issue