ecor
Loading...
Searching...
No Matches
ecor::unique_span< T, Extent, Deleter > Struct Template Reference

Unique span with custom deleter, useful for managing memory from custom memory resources. More...

#include <ecor.hpp>

Public Types

using span_type = std::span< T, Extent >
 

Public Member Functions

unique_spanoperator= (unique_span &&other) noexcept
 Move assignment operator - transfers ownership from other to this unique_span.
 
unique_spanoperator= (unique_span const &)=delete
 
std::span< T, Extent > release () noexcept
 Release ownership of the managed span and return it. More...
 
 unique_span (T *data, std::size_t size, Deleter deleter=Deleter{}) noexcept(std::is_nothrow_move_constructible_v< Deleter >)
 Construct a unique_span with given data, size, and deleter.
 
 unique_span (unique_span &&other) noexcept
 Move constructor - transfers ownership from other to this unique_span.
 
 unique_span (unique_span const &)=delete
 
 ~unique_span ()
 Destructor - calls the deleter on the managed span if it is not empty.
 

Public Attributes

elements
 STL member.
 

Detailed Description

template<typename T, std::size_t Extent = std::dynamic_extent, typename Deleter = std::default_delete< T[] >>
struct ecor::unique_span< T, Extent, Deleter >

Unique span with custom deleter, useful for managing memory from custom memory resources.

Combines the semantics of std::unique_ptr and std::span.

Member Function Documentation

◆ release()

template<typename T , std::size_t Extent = std::dynamic_extent, typename Deleter = std::default_delete< T[] >>
std::span< T, Extent > ecor::unique_span< T, Extent, Deleter >::release ( )
inlinenoexcept

Release ownership of the managed span and return it.

After this call, the unique_span is empty.


The documentation for this struct was generated from the following file: