Template Class impl_ptr

Inheritance Relationships

Base Type

Class Documentation

template<class T, class Deleter = details::default_deleter_t<T>, class Copier = details::default_copier_t<T>>
class impl_ptr : public rmf_utils::unique_impl_ptr<T, details::default_deleter_t<T>>

Public Types

using pointer = typename base_type::pointer
using const_pointer = typename base_type::const_pointer
using reference = typename base_type::reference
using const_reference = typename base_type::const_reference
using element_type = typename base_type::element_type
using deleter_type = typename base_type::deleter_type
using unique_ptr_type = typename base_type::unique_ptr_type
using copier_type = typename std::decay<Copier>::type
using is_default_manageable = details::is_default_manageable<T, deleter_type, copier_type>

Public Functions

inline constexpr impl_ptr() noexcept
inline constexpr impl_ptr(std::nullptr_t) noexcept
template<class D, class C>
inline impl_ptr(pointer p, D &&d, C &&c, typename std::enable_if<std::is_convertible<D, deleter_type>::value && std::is_convertible<C, copier_type>::value, typename base_type::dummy_t_>::type = typename base_type::dummy_t_()) noexcept
template<class U>
inline impl_ptr(U *u, typename std::enable_if<std::is_convertible<U*, pointer>::value && is_default_manageable::value, dummy_t_>::type = dummy_t_()) noexcept
inline impl_ptr(const impl_ptr &r)
impl_ptr(impl_ptr &&r) noexcept = default
template<class U>
inline 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_()) noexcept
template<class U, class D, class C>
inline impl_ptr(std::unique_ptr<U, D> &&u, C &&c, typename std::enable_if<std::is_convertible<U*, pointer>::value && std::is_convertible<D, deleter_type>::value, dummy_t_>::type = dummy_t_()) noexcept
template<class U, class D, class C>
inline impl_ptr(impl_ptr<U, D, C> &&u, typename std::enable_if<std::is_convertible<U*, pointer>::value && std::is_convertible<D, deleter_type>::value, dummy_t_>::type = dummy_t_()) noexcept
inline impl_ptr &operator=(const impl_ptr &r)
impl_ptr &operator=(impl_ptr &&r) noexcept = default
template<class U, class D, class C>
inline std::enable_if<std::is_convertible<U*, pointer>::value && std::is_convertible<D, deleter_type>::value && std::is_convertible<C, copier_type>::value, impl_ptr&>::type operator=(const impl_ptr<U, D, C> &u)
template<class U>
inline std::enable_if<std::is_convertible<U*, pointer>::value && is_default_manageable::value, impl_ptr&>::type operator=(std::unique_ptr<U> &&u) noexcept
template<class U, class D, class C>
inline std::enable_if<std::is_convertible<U*, pointer>::value && std::is_convertible<D, deleter_type>::value && std::is_convertible<C, copier_type>::value, impl_ptr&>::type operator=(impl_ptr<U, D, C> &&u) noexcept
inline void swap(impl_ptr &u) noexcept
inline impl_ptr clone() const
inline const std::remove_reference<copier_type>::type &get_copier() const noexcept
inline std::remove_reference<copier_type>::type &get_copier() noexcept