From c55d267039b1dfe9f5d29e02066a00cfea40305c Mon Sep 17 00:00:00 2001 From: Theodore Papadopoulo Date: Fri, 17 Nov 2000 23:59:03 +0100 Subject: [PATCH] stl_tree.h: Overload operators == and != to be able to handle the case... 2000-11-17 Theodore Papadopoulo * include/bits/stl_tree.h: Overload operators == and != to be able to handle the case (const_iterator,iterator) and (iterator,const_iterator), thus fixing libstdc++/737 and the like. * testsuite/23_containers/map_operators.cc (test02): New tests. From-SVN: r37532 --- libstdc++-v3/ChangeLog | 3 +- .../testsuite/23_containers/map_operators.cc | 28 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index af4c6975f50..1324f10dd51 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -3,7 +3,8 @@ * include/bits/stl_tree.h: Overload operators == and != to be able to handle the case (const_iterator,iterator) and (iterator,const_iterator), thus fixing libstdc++/737 and the like. - + * testsuite/23_containers/map_operators.cc (test02): New tests. + 2000-11-17 Loren J. Rittle * acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Correct last patch diff --git a/libstdc++-v3/testsuite/23_containers/map_operators.cc b/libstdc++-v3/testsuite/23_containers/map_operators.cc index 4a46d811ff1..21b62ed5e4e 100644 --- a/libstdc++-v3/testsuite/23_containers/map_operators.cc +++ b/libstdc++-v3/testsuite/23_containers/map_operators.cc @@ -22,11 +22,12 @@ #include #include +#include // map and set // libstdc++/86: map & set iterator comparisons are not type-safe // XXX this is XFAIL for the time being, ie this should not compile -int main(void) +void test01() { bool test = true; std::map mapByIndex; @@ -42,3 +43,28 @@ int main(void) return 0; } + +// http://sources.redhat.com/ml/libstdc++/2000-11/msg00093.html +void test02() +{ + typedef std::map MapInt; + + MapInt m; + + for (unsigned i=0;i<10;++i) + m.insert(MapInt::value_type(i,i)); + + for (MapInt::const_iterator i=m.begin();i!=m.end();++i) + std::cerr << i->second << ' '; + + for (MapInt::const_iterator i=m.begin();m.end()!=i;++i) + std::cerr << i->second << ' '; +} + +int main() +{ + test01(); + test02(); + + return 0; +}