Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::unique_resource< R, D > Class Template Reference

Public Member Functions

R const & get () const noexcept
 
D & get_deleter () noexcept
 
D const & get_deleter () const noexcept
 
 operator R const & () const noexcept
 
template<typename RR = R>
auto operator* () const noexcept-> decltype(*std::declval< RR const & >())
 
operator-> () const noexcept(std::is_nothrow_copy_constructible< R >::value)
 
unique_resourceoperator= (unique_resource &&that) noexcept(_is_nothrow_delete::value && std::is_nothrow_move_assignable< R >::value && std::is_nothrow_move_assignable< D >::value)
 
unique_resourceoperator= (unique_resource const &)=delete
 
void release () noexcept
 
void reset () noexcept(_is_nothrow_delete::value)
 
void reset (R const &r) noexcept(_is_nothrow_delete::value &&std::is_nothrow_copy_assignable< R >::value)
 
void reset (R &r) noexcept(_is_nothrow_delete::value &&std::is_nothrow_copy_assignable< R >::value)
 
void reset (R &&r) noexcept(_is_nothrow_delete::value &&std::is_nothrow_move_assignable< R >::value)
 
void swap (unique_resource &that) noexcept(_is_nothrow_swappable::value)
 
template<typename RR , typename DD , typename RRef = detail::_coerce_to_ref_of_t<RR, R>, typename DRef = detail::_coerce_to_ref_of_t<DD, D>, typename = meta::if_<detail::_is_constructible<R, RRef>>, typename = meta::if_<detail::_is_constructible<D, DRef>>>
 unique_resource (RR &&r, DD &&d) noexcept(std::is_nothrow_constructible< R, RRef >::value && std::is_nothrow_constructible< D, DRef >::value)
 
 unique_resource (unique_resource &&that) noexcept(std::is_nothrow_move_constructible< R >::value && std::is_nothrow_move_constructible< D >::value)
 
 unique_resource (unique_resource const &)=delete