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
This commit is contained in:
Scott Snyder 2000-06-30 00:49:12 +00:00 committed by Benjamin Kosnik
parent 4a2f4b128f
commit b6a89402e3
3 changed files with 58 additions and 2 deletions

View 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().

View 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>

View File

@ -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;
}