diff --git a/include/ircd/buffer/unique_buffer.h b/include/ircd/buffer/unique_buffer.h index a8f437e1e..b77d5b0af 100644 --- a/include/ircd/buffer/unique_buffer.h +++ b/include/ircd/buffer/unique_buffer.h @@ -32,6 +32,7 @@ struct ircd::buffer::unique_buffer unique_buffer() = default; unique_buffer(const size_t &size, const size_t &align = 0); explicit unique_buffer(const const_buffer &); + template unique_buffer(unique_buffer &&) noexcept; unique_buffer(unique_buffer &&) noexcept; unique_buffer(const unique_buffer &) = delete; unique_buffer &operator=(unique_buffer &&) & noexcept; @@ -71,6 +72,19 @@ ircd::buffer::unique_buffer::unique_buffer(const size_t &size, } {} +template +template +inline +ircd::buffer::unique_buffer::unique_buffer(unique_buffer &&other) +noexcept +:buffer_type +{ + other.release() +} +{ + assert(std::get<0>(other) == nullptr); +} + template inline ircd::buffer::unique_buffer::unique_buffer(unique_buffer &&other)