diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-02-19 10:42:47 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-02-19 10:42:47 +0000 |
commit | 415ed6120471fdb77abbbf74faf3bb40b3c47780 (patch) | |
tree | 10f9d81b024e904da5d870774d132dde43b24465 | |
parent | 604d0dbc8b8318a44e49f90d97293fa9e806666a (diff) | |
download | gcc-415ed6120471fdb77abbbf74faf3bb40b3c47780.zip gcc-415ed6120471fdb77abbbf74faf3bb40b3c47780.tar.gz gcc-415ed6120471fdb77abbbf74faf3bb40b3c47780.tar.bz2 |
shared_ptr_base.h (__weak_ptr): Remove deleted comparison operators, per DR 1256.
2010-02-19 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/shared_ptr_base.h (__weak_ptr): Remove deleted
comparison operators, per DR 1256.
* include/bits/shared_ptr.h (weak_ptr): Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.
From-SVN: r156891
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/shared_ptr.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/shared_ptr_base.h | 13 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc | 11 |
4 files changed, 12 insertions, 29 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4ac1d58..e75016c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2010-02-19 Paolo Carlini <paolo.carlini@oracle.com> + + * include/bits/shared_ptr_base.h (__weak_ptr): Remove deleted + comparison operators, per DR 1256. + * include/bits/shared_ptr.h (weak_ptr): Likewise. + * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust. + 2010-02-18 Benjamin Kosnik <bkoz@redhat.com> * scripts/run_doxygen: Add shortnames option. diff --git a/libstdc++-v3/include/bits/shared_ptr.h b/libstdc++-v3/include/bits/shared_ptr.h index 3e909f5..b204699 100644 --- a/libstdc++-v3/include/bits/shared_ptr.h +++ b/libstdc++-v3/include/bits/shared_ptr.h @@ -367,16 +367,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) return this->expired() ? shared_ptr<_Tp>() : shared_ptr<_Tp>(*this); #endif } - - // Comparisons - template<typename _Tp1> - bool operator<(const weak_ptr<_Tp1>&) const = delete; - template<typename _Tp1> - bool operator<=(const weak_ptr<_Tp1>&) const = delete; - template<typename _Tp1> - bool operator>(const weak_ptr<_Tp1>&) const = delete; - template<typename _Tp1> - bool operator>=(const weak_ptr<_Tp1>&) const = delete; }; // 20.8.13.3.7 weak_ptr specialized algorithms. diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h index 51bd51d..9d36faf 100644 --- a/libstdc++-v3/include/bits/shared_ptr_base.h +++ b/libstdc++-v3/include/bits/shared_ptr_base.h @@ -1022,19 +1022,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) _M_refcount._M_swap(__s._M_refcount); } - // Comparisons - template<typename _Tp1> - bool operator<(const __weak_ptr<_Tp1, _Lp>&) const = delete; - - template<typename _Tp1> - bool operator<=(const __weak_ptr<_Tp1, _Lp>&) const = delete; - - template<typename _Tp1> - bool operator>(const __weak_ptr<_Tp1, _Lp>&) const = delete; - - template<typename _Tp1> - bool operator>=(const __weak_ptr<_Tp1, _Lp>&) const = delete; - private: // Used by __enable_shared_from_this. void diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc index f73f5c7..5cbd55c 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc @@ -1,7 +1,7 @@ // { dg-options "-std=gnu++0x " } // { dg-do compile } -// Copyright (C) 2008, 2009 Free Software Foundation +// Copyright (C) 2008, 2009, 2010 Free Software Foundation // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -21,7 +21,6 @@ // 20.6.6.3 Template class weak_ptr [util.smartptr.weak] #include <memory> -#include <testsuite_hooks.h> struct A { }; @@ -30,10 +29,10 @@ struct A { }; int test01() { - std::weak_ptr<A> p1; - // { dg-excess-errors "deleted function" } - p1 < p1; // { dg-error "used here" } - return 0; + std::weak_ptr<A> p1; + // { dg-excess-errors "candidates are" } + p1 < p1; // { dg-error "no match" } + return 0; } int |