PR libstdc++/86537 remove less<shared_ptr<T>> partial specialization
commit2d8d1f30b003773d3561356220a079b775dd2d23
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Jul 2018 17:13:41 +0000 (16 17:13 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Jul 2018 17:13:41 +0000 (16 17:13 +0000)
tree24156815bed6f991ee7acdf1d1d62a0fc4e41642
parent30e4a180ac019a0965116a8a72a86989601fa056
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@262739 138bc75d-0d04-0410-961f-82ee72b054a4
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]