Template Class unique_impl_ptr

Nested Relationships

Nested Types

Inheritance Relationships

Derived Types

Class Documentation

template<class T, class Deleter = details::default_deleter_t<T>>
class unique_impl_ptr

Subclassed by spimpl::impl_ptr< Impl >, spimpl::impl_ptr< T, Deleter, Copier >

Public Types

using pointer = T*
using const_pointer = typename std::add_const<T>::type*
using reference = T&
using const_reference = typename std::add_const<T>::type&
using element_type = T
using deleter_type = typename std::decay<Deleter>::type
using unique_ptr_type = std::unique_ptr<T, deleter_type>
using is_default_manageable = details::is_default_manageable<T, deleter_type>

Public Functions

inline SPIMPL_CONSTEXPR unique_impl_ptr () SPIMPL_NOEXCEPT
inline SPIMPL_CONSTEXPR unique_impl_ptr (std::nullptr_t) SPIMPL_NOEXCEPT
template<class D> inline  unique_impl_ptr (pointer p, D &&d, typename std::enable_if< std::is_convertible< D, deleter_type >::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
template<class U> inline  unique_impl_ptr (U *u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
unique_impl_ptr (unique_impl_ptr &&r) SPIMPL_NOEXCEPT=default
template<class U> inline  unique_impl_ptr (std::unique_ptr< U > &&u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
template<class U, class D> inline  unique_impl_ptr (std::unique_ptr< U, D > &&u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&std::is_convertible< D, deleter_type >::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
template<class U, class D> inline  unique_impl_ptr (unique_impl_ptr< U, D > &&u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&std::is_convertible< D, deleter_type >::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
unique_impl_ptr(const unique_impl_ptr<T, Deleter>&) = delete
unique_impl_ptr & operator= (unique_impl_ptr &&r) SPIMPL_NOEXCEPT=default
template<class U> inline std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, unique_impl_ptr & >::type operator= (std::unique_ptr< U > &&u) SPIMPL_NOEXCEPT
reference operator=(const unique_impl_ptr<T, Deleter>&) = delete
inline reference operator*()
inline const_reference operator*() const
inline pointer operator-> () SPIMPL_NOEXCEPT
inline const_pointer operator-> () const SPIMPL_NOEXCEPT
inline pointer get () SPIMPL_NOEXCEPT
inline const_pointer get () const SPIMPL_NOEXCEPT
inline void swap (unique_impl_ptr &u) SPIMPL_NOEXCEPT
inline pointer release () SPIMPL_NOEXCEPT
inline unique_ptr_type release_unique () SPIMPL_NOEXCEPT
inline explicit  operator bool () const SPIMPL_NOEXCEPT
inline std::remove_reference< deleter_type >::type & get_deleter () SPIMPL_NOEXCEPT
inline const std::remove_reference< deleter_type >::type & get_deleter () const SPIMPL_NOEXCEPT

Protected Attributes

unique_ptr_type ptr_
struct dummy_t_

Public Members

int dummy__