0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-16 17:08:20 +02:00

ircd::buffer: Support release() for unique_buffer.

This commit is contained in:
Jason Volk 2018-08-18 17:43:59 -07:00
parent 6f75a1c8f8
commit a7f43fe48d

View file

@ -18,6 +18,8 @@ template<class buffer,
struct ircd::buffer::unique_buffer
:buffer
{
buffer release();
unique_buffer(const size_t &size);
unique_buffer(std::unique_ptr<char[]> &&, const size_t &size);
explicit unique_buffer(const buffer &);
@ -122,3 +124,13 @@ noexcept
{
delete[] data(*this);
}
template<class buffer,
uint alignment>
buffer
ircd::buffer::unique_buffer<buffer, alignment>::release()
{
const buffer ret{static_cast<buffer>(*this)};
static_cast<buffer &>(*this) = buffer{};
return ret;
}