diff options
author | Scott Snyder <snyder@fnal.gov> | 2000-06-30 00:49:12 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2000-06-30 00:49:12 +0000 |
commit | b6a89402e3816ca52914506de0efeddcb5f248d3 (patch) | |
tree | e37da322a543315bc660fb64a3a6500f7860d583 | |
parent | 4a2f4b128f298dcd45d4985e67289b82e9efd2e5 (diff) | |
download | gcc-b6a89402e3816ca52914506de0efeddcb5f248d3.zip gcc-b6a89402e3816ca52914506de0efeddcb5f248d3.tar.gz gcc-b6a89402e3816ca52914506de0efeddcb5f248d3.tar.bz2 |
2000-06-29 scott snyder <snyder@fnal.gov>
* bits/concept_checks.h
(__less_then_comparable_requirement_violation): Only check for <.
* testsuite/25_algorithms/lower_bound.cc: New file.
From-SVN: r34798
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/bits/concept_checks.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/25_algorithms/lower_bound.cc | 50 |
3 files changed, 58 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6f1b227..c1680a6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2000-06-29 scott snyder <snyder@fnal.gov> + + * bits/concept_checks.h + (__less_then_comparable_requirement_violation): Only check for <. + * testsuite/25_algorithms/lower_bound.cc: New file. + 2000-06-29 Benjamin Kosnik <bkoz@purist.soma.redhat.com> * testsuite/27_io/ostream_manip.cc (test02): Add tests. @@ -6,7 +12,7 @@ _M_buf_size_opt too. * bits/std_streambuf.h (basic_streambuf::~basic_streambuf): Zero out _M_buf_size_opt. - * bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Zero + * bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Set _M_buf_size_opt out here. * bits/char_traits.h (char_traits::eos): Non standard member function, uglify to __eos. Return char_type(). diff --git a/libstdc++-v3/bits/concept_checks.h b/libstdc++-v3/bits/concept_checks.h index 36df283..4a0e2d5 100644 --- a/libstdc++-v3/bits/concept_checks.h +++ b/libstdc++-v3/bits/concept_checks.h @@ -393,7 +393,7 @@ struct _STL_ERROR { template <class _Type> static _Type __less_than_comparable_requirement_violation(_Type __a, _Type __b) { - if (__a < __b || __a > __b || __a <= __b || __a >= __b) return __a; + if (__a < __b) return __a; return __b; } template <class _Type> diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc new file mode 100644 index 0000000..076c954 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound.cc @@ -0,0 +1,50 @@ +// Copyright (C) 2000 Free Software Foundation, Inc. +// +// 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +#include <algorithm> +#ifdef DEBUG_ASSERT +#include <assert.h> +#endif + +// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00316.html +struct foo { }; + +bool operator== (const foo&, const foo&) { }; +bool operator< (const foo&, const foo&) { }; + +void bar(foo* a, foo* b, foo& x) +{ + foo* c = std::lower_bound(a, b, x); +} + +void test01() +{ + bool test = true; + +#ifdef DEBUG_ASSERT + assert(test); +#endif +} + +int main() +{ + return 0; +} + + + |