2000-06-29 scott snyder <snyder@fnal.gov>
authorScott Snyder <snyder@fnal.gov>
Fri, 30 Jun 2000 00:49:12 +0000 (00:49 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 30 Jun 2000 00:49:12 +0000 (00:49 +0000)
        * bits/concept_checks.h
        (__less_then_comparable_requirement_violation): Only check for <.
* testsuite/25_algorithms/lower_bound.cc: New file.

From-SVN: r34798

libstdc++-v3/ChangeLog
libstdc++-v3/bits/concept_checks.h
libstdc++-v3/testsuite/25_algorithms/lower_bound.cc [new file with mode: 0644]

index 6f1b227..c1680a6 100644 (file)
@@ -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().
index 36df283..4a0e2d5 100644 (file)
@@ -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 (file)
index 0000000..076c954
--- /dev/null
@@ -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;
+}
+
+
+