Created on 2010-01-23.00:00:00 last changed 174 months ago
Proposed resolution:
Strike from [unique.ptr.single]:
template <class T, class D = default_delete<T>> class unique_ptr {
...
unique_ptr(const unique_ptr&) = delete;
template <class U, class E> unique_ptr(const unique_ptr<U, E>&) = delete;
unique_ptr& operator=(const unique_ptr&) = delete;
template <class U, class E> unique_ptr& operator=(const unique_ptr<U, E>&) = delete;
};
Strike from [util.smartptr.shared]:
template<class T> class shared_ptr {
...
template <class Y, class D> explicit shared_ptr(const unique_ptr<Y, D>& r) = delete;
...
template <class Y, class D> shared_ptr& operator=(const unique_ptr<Y, D>& r) = delete;
...
};
[ 2010-02-12 Moved to Tentatively Ready after 5 positive votes on c++std-lib. ]
N3000 [util.smartptr.shared]/1 still says:
template <class Y, class D> explicit shared_ptr(const unique_ptr<Y, D>& r) = delete; template <class Y, class D> shared_ptr& operator=(const unique_ptr<Y, D>& r) = delete;
I believe that this is unnecessary now that "rvalue references v2" prevents rvalue references from binding to lvalues, and I didn't see a Library Issue tracking this.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2011-08-23 20:07:26 | admin | set | status: wp -> c++11 |
| 2010-10-21 18:28:33 | admin | set | messages: + msg1522 |
| 2010-10-21 18:28:33 | admin | set | messages: + msg1521 |
| 2010-01-23 00:00:00 | admin | create | |