PR libstdc++/86537 remove less<shared_ptr<T>> partial specialization
authorJonathan Wakely <jwakely@redhat.com>
Mon, 16 Jul 2018 17:13:41 +0000 (18:13 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 16 Jul 2018 17:13:41 +0000 (18:13 +0100)
commit20b47be02cc8a1bde28519b496a5acea5419c995
tree24156815bed6f991ee7acdf1d1d62a0fc4e41642
parent2ee1228ecd5f5c6e3ff4ac07e4b7f45c79211576
PR libstdc++/86537 remove less<shared_ptr<T>> partial specialization

The standard doesn't specify this partial specialization (it was
required after the changes in N2637 but then should have been removed
following LWG 1262). Its presence is observable because it causes
different results when operator< has been overloaded for a shared_ptr
specialization.

PR libstdc++/86537
* include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
non-standard partial specialization.
* include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
(less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
* testsuite/20_util/shared_ptr/comparison/86537.cc: New test.

From-SVN: r262739
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/shared_ptr_base.h
libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc [new file with mode: 0644]