|
|
@@ -20,13 +20,13 @@ public:
|
|
|
using const_pointer = element_type const *;
|
|
|
using const_reference = element_type const &;
|
|
|
|
|
|
- const_propogating_ptr() noexcept : _ptr(nullptr) {}
|
|
|
+ const_propogating_ptr() noexcept : _ptr() {}
|
|
|
const_propogating_ptr(P const & p) noexcept(detail::is_nt_cc<P>::value) : _ptr(p) {}
|
|
|
const_propogating_ptr(P && p) noexcept(detail::is_nt_mc<P>::value) : _ptr(std::move(p)) {}
|
|
|
template <typename Y, typename = typename std::enable_if<std::is_constructible<P, Y>::value>::type>
|
|
|
const_propogating_ptr(Y const & p) : _ptr(p) { }
|
|
|
template <typename Y, typename = typename std::enable_if<std::is_constructible<P, Y>::value>::type>
|
|
|
- const_propogating_ptr(Y && p) : _ptr(std::move(p)) { }
|
|
|
+ const_propogating_ptr(Y && p) : _ptr(std::forward<Y>(p)) { }
|
|
|
|
|
|
const_propogating_ptr(const_propogating_ptr &) noexcept(detail::is_nt_cc<P>::value) = default;
|
|
|
const_propogating_ptr(const_propogating_ptr &&) noexcept(detail::is_nt_mc<P>::value) = default;
|