From c7ac7ddaa97d6e0a00a9ce554cd64ce9f167519a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 26 Jan 2015 11:18:14 +0000 Subject: [PATCH] 2.cc: Add test for non-transparent comparison function. * testsuite/23_containers/set/operations/2.cc: Add test for non-transparent comparison function. From-SVN: r220107 --- libstdc++-v3/ChangeLog | 5 +++++ .../testsuite/23_containers/set/operations/2.cc | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1620f4e9412..6b2124a37b8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2015-01-26 Jonathan Wakely + + * testsuite/23_containers/set/operations/2.cc: Add test for + non-transparent comparison function. + 2015-01-25 Oleg Endo PR target/29366 diff --git a/libstdc++-v3/testsuite/23_containers/set/operations/2.cc b/libstdc++-v3/testsuite/23_containers/set/operations/2.cc index 752bc7dd7a6..84ddd1f1ddc 100644 --- a/libstdc++-v3/testsuite/23_containers/set/operations/2.cc +++ b/libstdc++-v3/testsuite/23_containers/set/operations/2.cc @@ -128,6 +128,22 @@ test05() VERIFY( Cmp::count == 0); } +void +test06() +{ + // https://gcc.gnu.org/ml/libstdc++/2015-01/msg00176.html + // Verify the new function template overloads do not cause problems + // when the comparison function is not transparent. + struct I + { + int i; + operator int() const { return i; } + }; + + std::set s; + I i = { }; + s.find(i); +} int main() @@ -137,4 +153,5 @@ main() test03(); test04(); test05(); + test06(); } -- 2.30.2