Commit Graph

68 Commits

Author SHA1 Message Date
Benjamin Kosnik 105c6331b2 type_traits.h: New.
2006-09-18  Benjamin Kosnik  <bkoz@redhat.com>
	    Peter Doerfler  <gcc@pdoerfler.com>
	    Paolo Carlini  <pcarlini@suse.de>
	
	* include/ext/type_traits.h: New. 
	(__conditional_type): New.
	(__numeric_traits): New.
	(__add_unsigned): New.
	(__remove_unsigned): New.
	(__enable_if): New.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* include/ext/pb_ds/detail/type_utils.hpp: Use ext include,
	remove duplicates.
	* include/tr1/hashtable_policy.h (IF): Use __conditional_type.
	(_Max_digits10): Same.
	(identity): Use _Identity.
	(extract1st): Use _Select1st.
	* include/tr1/random (_Select): Use __conditional_type.
	(_To_Unsigned_Type): Use __add_unsigned. Linebreak fixups.
	* include/bits/locale_facets.tcc (__to_unsigned_type): Remove, use
	__add_unsigned.
	* include/tr1/random.tcc: Fixups as above.
	* include/tr1/unordered_map: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/unordered_set: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/
	standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
	* include/ext/pb_ds/detail/type_utils.hpp: Same.
	* include/ext/pb_ds/trie_policy.hpp: Same.
	* docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same.
	
	* include/bits/cpp_type_traits.h (__enable_if): Move to ext, make
	boolean argument first.	
	* include/bits/locale_facets.h: Fixups for __enable_if argument
	and namespace switch.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/debug/safe_iterator.h: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/cmath: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/c_std/std_cmath.h: Same.
	* testsuite/util/testsuite_tr1.h: Same.
	* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.


Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com>

From-SVN: r117024
2006-09-18 13:30:56 +00:00
Roger Sayle 8c093661a3 stl_algo.h (__heap_select, [...]): New.
2006-08-28  Roger Sayle  <roger@eyesopen.com>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (__heap_select, __introselect): New.
	(nth_element): New implementation.
	(partial_copy): Use __heap_select.
	* testsuite/performance/25_algorithms/nth_element_worst_case.cc: New.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r116520
2006-08-28 18:32:35 +00:00
Paolo Carlini 976e25f422 stl_bvector.h (vector<bool>::_M_copy_aligned): New.
2006-08-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (vector<bool>::_M_copy_aligned): New.
	(vector<bool>::vector(const vector&), operator=(const vector&),
	reserve(size_type), _M_fill_insert(iterator, size_type, bool),
	_M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Use it.
	* testsuite/performance/23_containers/copy_construct/
	vector_bool.cc: New.

	* testsuite/23_containers/vector/bool/cons/1.cc: New.
	* testsuite/23_containers/vector/bool/cons/2.cc: Likewise.

	* include/bits/stl_bvector.h (vector<bool>::_M_fill): Remove.
	(fill(_Bit_iterator, _Bit_iterator, const bool&)): New.
	(vector<bool>::_M_fill_insert(iterator, size_type, bool)): Adjust.

	* include/bits/stl_bvector.h (_M_initialize_range(_InputIterator,
	_InputIterator, std::input_iterator_tag)): Remove redundant
	assignments.

	* include/bits/stl_algo.h (find(istreambuf_iterator<>,
	istreambuf_iterator<>, _CharT)): Adjust signature.
	* include/bits/streambuf_iterator.h: Likewise.
	* include/std/std_streambuf.h: Likewise.

From-SVN: r116049
2006-08-09 23:39:16 +00:00
Paolo Carlini 43804767bb stl_algo.h (stable_sort): Uglify the buf variable.
2006-07-30  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (stable_sort): Uglify the buf variable.
	* include/bits/stl_tempbuf.h (_Temporary_buffer<>::
	_M_initialize_buffer): Uglify the val parameter.

From-SVN: r115820
2006-07-30 13:02:58 +00:00
Douglas Gregor 008712ae1c re PR libstdc++/27162 (search_n uses == when it should use binary_pred)
2006-04-14  Douglas Gregor  <dgregor@cs.indiana.edu>

	PR libstdc++/27162
	* include/bits/stl_algo.h (__search_n(,,,, _BinaryPredicate,
	std::forward_iterator_tag)): Use __binary_pred, not ==.

From-SVN: r112957
2006-04-14 17:35:06 +00:00
Paolo Carlini 9f889fcf52 DR 538, [Ready]
2006-04-10  Paolo Carlini  <pcarlini@suse.de>

	DR 538, [Ready]
	* include/bits/stl_algo.h (__unique_copy(,,, input_iterator_tag,
	output_iterator_tag), and predicated counterpart): Revert to the
	algorithm pre-DR 241, i.e., value_type of InputIterator is now
	required to be Assignable too.
	* testsuite/25_algorithms/unique_copy/3.cc: Remove.
	* docs/html/ext/howto.html: Add an entry for DR 538.

From-SVN: r112818
2006-04-10 10:05:51 +00:00
Paolo Carlini 0002d5d2bc re PR libstdc++/25482 (Specialize (overload) std::copy/find for streambuf iterators)
2006-03-21  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/25482
	* include/bits/stl_algobase.h (__copy_aux(_CharT*, _CharT*,
	ostreambuf_iterator<_CharT>), __copy_aux(const _CharT*, const _CharT*,
	ostreambuf_iterator<_CharT>), __copy_aux(istreambuf_iterator<_CharT>,
	istreambuf_iterator<_CharT>, _CharT*), copy(istreambuf_iterator<_CharT>,
	istreambuf_iterator<_CharT>, ostreambuf_iterator<_CharT>)): Declare.
	* include/bits/stl_algo.h (find(istreambuf_iterator<_CharT>,
	istreambuf_iterator<_CharT>, _CharT)): Likewise.
	* include/bits/streambuf_iterator.h (copy(istreambuf_iterator<_CharT>,
	istreambuf_iterator<_CharT>, ostreambuf_iterator<_CharT>),
	__copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>),
	__copy_aux(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT>),
	__copy_aux(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
	_CharT*), find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
	_CharT)): Define.
	(class istreambuf_iterator<>, class ostreambuf_iterator<>): Declare
	friends.
	* include/std/std_streambuf.h (class basic_streambuf<>): Likewise.
	* include/bits/cpp_type_traits.h (struct __is_char<>): Add.
	* testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc: New.
	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc: New.
	* testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc: New.
	* testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: New.
	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc: New.
	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc: New.
	* testsuite/performance/25_algorithms/copy_streambuf_iterators.cc: New.
	* testsuite/performance/25_algorithms/find_istreambuf_iterators.cc: New.

From-SVN: r112247
2006-03-21 12:25:11 +00:00
Paolo Carlini 3089d5a419 PR libstdc++/26133 (DR 241, [WP])
2006-02-08  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/26133  (DR 241, [WP])
	* include/bits/stl_algo.h (__unique_copy(,,, forward_iterator_tag,
	output_iterator_tag), __unique_copy(,,, input_iterator_tag,
	output_iterator_tag), __unique_copy(,,, input_iterator_tag,
	forward_iterator_tag), and predicated counterparts): Add.
	(__unique_copy(,,, output_iterator_tag), __unique_copy(,,,
	forward_iterator_tag), and predicated counterparts): Remove.
	(unique_copy): Adjust, dispatch to the three helpers above.
	* testsuite/25_algorithms/unique_copy/2.cc: New.
	* testsuite/25_algorithms/unique_copy/26133.cc: Likewise.
	* testsuite/25_algorithms/unique_copy/3.cc: Likewise.	
	* docs/html/ext/howto.html: Add an entry for DR 241.

	* testsuite/25_algorithms/unique_copy/1.cc: Minor cosmetic changes.

From-SVN: r110772
2006-02-08 21:51:55 +00:00
Benjamin Kosnik 3cbc7af037 c++config: Add in revised namespace associations.
2005-12-18  Benjamin Kosnik  <bkoz@redhat.com>
	
	* include/bits/c++config: Add in revised namespace associations.
	_GLIBCXX_BEGIN_NAMESPACE: New macro.
	_GLIBCXX_END_NAMESPACE: Same.
	_GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
	_GLIBCXX_END_NESTED_NAMESPACE: Same.
	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
	* configure: Regenerated.
	* config.h.in: Same.
	* config/abi/pre/gnu-versioned-namespace.ver: New.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
	debug mode items. 
	* include/Makefile.am (${host_builddir}/c++config.h): Fill in
	values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
	* include/Makefile.in: Regnerate.
	* src/compatibility.cc: Alias new, nested definitions to exported
	symbols from non-nested __gnu_debug.
	* src/Makefile.am:  Add in ENABLE_SYMVERS_GNU_NAMESPACE.
	* src/Makefile.in: Regenerate.
	
	* docs/html/debug_mode.html: Revise for nested design.
	* docs/html/debug.html: Use debug qualifications instead of
	__gnu_debug.
	* docs/html/configopts.html: Revise documentation for
	--enable-symvers.
	
	* include/debug/formatter: Simplify namespace qualifications for
	current, nested-only reality. Add top-level namespace alias,
	namespace debug, for debug-mode containers.
	* include/debug/safe_iterator.h: Same.	
	* include/debug/set.h: Same.
	* include/debug/hash_multimap.h: Same.
	* include/debug/hash_set.h: Same.
	* include/debug/bitset
	* include/debug/safe_sequence.h: Same.
	* include/debug/multiset.h: Same.
	* include/debug/safe_base.h: Same.
	* include/debug/functions.h: Same.
	* include/debug/safe_iterator.tcc
	* include/debug/hash_multiset.h: Same.
	* include/debug/vector
	* include/debug/map.h: Same.
	* include/debug/deque
	* include/debug/hash_map.h: Same.
	* include/debug/string
	* include/debug/macros.h: Same.
	* include/debug/list
	* include/debug/debug.h: Same.
	* include/debug/multimap.h: Same.	
	* src/debug.cc: Same.
	* testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
	* testsuite/23_containers/vector/invalidation/2.cc: Same.
	* testsuite/23_containers/vector/invalidation/3.cc: Same.
	* testsuite/23_containers/vector/invalidation/4.cc: Same.
	* testsuite/23_containers/deque/invalidation/1.cc: Same.
	* testsuite/23_containers/deque/invalidation/2.cc: Same.
	* testsuite/23_containers/deque/invalidation/3.cc: Same.
	* testsuite/23_containers/deque/invalidation/4.cc: Same.
	* testsuite/23_containers/multiset/invalidation/1.cc: Same.
	* testsuite/23_containers/multiset/invalidation/2.cc: Same.
	* testsuite/23_containers/multimap/invalidation/1.cc: Same.
	* testsuite/23_containers/multimap/invalidation/2.cc: Same.
	* testsuite/23_containers/bitset/invalidation/1.cc: Same.
	* testsuite/23_containers/bitset/cons/16020.cc: Same.
	* testsuite/23_containers/bitset/operations/13838.cc: Same.
	* testsuite/23_containers/list/invalidation/1.cc: Same.
	* testsuite/23_containers/list/invalidation/2.cc: Same.
	* testsuite/23_containers/list/invalidation/3.cc: Same.
	* testsuite/23_containers/list/invalidation/4.cc: Same.
	* testsuite/23_containers/set/invalidation/1.cc: Same.
	* testsuite/23_containers/set/invalidation/2.cc: Same.
	* testsuite/23_containers/map/invalidation/1.cc: Same.
	* testsuite/23_containers/map/invalidation/2.cc: Same.
	* testsuite/23_containers/map/insert/16813.cc: Same.
	
	* include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
	friends.	
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/localefwd.h: Same.
	* include/bits/valarray_array.tcc: Same.
	* include/bits/valarray_after.h: Same.
	* include/bits/gslice_array.h: Same.
	* include/bits/stl_queue.h: Same.
	* include/bits/gslice.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/stl_stack.h: Same.
	* include/bits/stl_iterator_base_types.h: Same.
	* include/bits/stl_heap.h: Same.
	* include/bits/indirect_array.h: Same.
	* include/bits/atomicity.h: Same.
	* include/bits/stream_iterator.h: Same.
	* include/bits/concurrence.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_pair.h: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/stl_raw_storage_iter.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/postypes.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/mask_array.h: Same.
	* include/bits/stl_uninitialized.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/slice_array.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/stl_iterator_base_funcs.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/c++config
	* include/bits/stl_iterator.h: Same.
	* include/bits/valarray_array.h: Same.
	* include/bits/stl_tempbuf.h: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/bits/valarray_before.h: Same.
	* include/bits/stl_construct.h: Same.
	* include/bits/stl_function.h: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/allocator.h: Same.
	* include/bits/stl_tree.h: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/stl_relops.h: Same.
	* include/bits/functexcept.h: Same.
	* include/std/std_valarray.h: Same.
	* include/std/std_iostream.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/std/std_bitset.h: Same.
	* include/std/std_iosfwd.h: Same.
	* include/std/std_iomanip.h: Same.
	* include/std/std_fstream.h: Same.
	* include/std/std_limits.h: Same.
	* include/std/std_stdexcept.h: Same.
	* include/std/std_istream.h: Same.
	* include/std/std_complex.h: Same.
	* include/std/std_memory.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_sstream.h: Same.
	* include/c_std/std_csignal.h: Same.
	* include/c_std/std_cstdlib.h: Same.
	* include/c_std/std_cstdio.h: Same.
	* include/c_std/std_cstdarg.h: Same.
	* include/c_std/std_cctype.h: Same.
	* include/c_std/std_cmath.h: Same.
	* include/c_std/std_ctime.h: Same.
	* include/c_std/std_clocale.h: Same.
	* include/c_std/std_csetjmp.h: Same.
	* include/c_std/std_cwchar.h: Same.
	* include/c_std/std_cstring.h: Same.
	* include/c_std/std_cstddef.h: Same.
	* include/c_std/std_cwctype.h: Same.
	* include/backward/iterator.h: Same.
	* include/backward/set.h: Same.
	* include/backward/hashtable.h: Same.
	* include/backward/fstream.h: Same.
	* include/backward/tempbuf.h: Same.
	* include/backward/istream.h: Same.
	* include/backward/bvector.h: Same.
	* include/backward/stack.h: Same.
	* include/backward/rope.h: Same.
	* include/backward/complex.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/heap.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/function.h: Same.
	* include/backward/multimap.h: Same.
	* include/backward/pair.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/strstream
	* include/backward/slist.h: Same.
	* include/backward/tree.h: Same.
	* include/backward/vector.h: Same.
	* include/backward/deque.h: Same.
	* include/backward/multiset.h: Same.
	* include/backward/list.h: Same.
	* include/backward/map.h: Same.
	* include/backward/algobase.h: Same.
	* include/backward/hash_map.h: Same.
	* include/backward/algo.h: Same.
	* include/backward/queue.h: Same.
	* include/backward/streambuf.h: Same.
	* src/allocator-inst.cc: Same.
	* src/complex_io.cc: Same.
	* src/localename.cc: Same.
	* src/limits.cc: Same.
	* src/ios_failure.cc: Same.
	* src/locale-misc-inst.cc: Same.
	* src/streambuf-inst.cc: Same.
	* src/misc-inst.cc: Same.
	* src/concept-inst.cc: Same.
	* src/ios_locale.cc: Same.
	* src/pool_allocator.cc: Same.
	* src/fstream-inst.cc: Same.
	* src/istream-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/locale_init.cc: Same.
	* src/ctype.cc: Same.
	* src/strstream.cc: Same.
	* src/ostream-inst.cc: Same.
	* src/functexcept.cc: Same.
	* src/streambuf.cc: Same.
	* src/sstream-inst.cc: Same.
	* src/ios.cc: Same.
	* src/valarray-inst.cc: Same.
	* src/locale.cc: Same.
	* src/tree.cc: Same.
	* src/stdexcept.cc: Same.
	* src/istream.cc: Same.
	* src/compatibility.cc: Same.
	* src/locale-inst.cc: Same.
	* src/globals_io.cc: Same.
	* src/list.cc: Same.
	* src/ios_init.cc: Same.
	* src/locale_facets.cc: Same.
	* src/codecvt.cc: Same.

	* include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
	* include/tr1/boost_shared_ptr.h: Same.
	* include/tr1/tuple
	* include/tr1/hashtable
	* include/tr1/type_traits_fwd.h: Same.
	* include/tr1/unordered_set
	* include/tr1/functional
	* include/tr1/ref_fwd.h: Same.
	* include/tr1/utility
	* include/tr1/type_traits
	* include/tr1/array

	* include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
	* include/ext/typelist.h: Same.
	* include/ext/hash_map: Same.
	* include/ext/rc_string_base.h: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/iterator: Same.
	* include/ext/rb_tree: Same.
	* include/ext/numeric: Same.
	* include/ext/vstring.tcc: Same.
	* include/ext/sso_string_base.h: Same.
	* include/ext/stdio_filebuf.h: Same.
	* include/ext/algorithm: Same.
	* include/ext/codecvt_specializations.h: Same.
	* include/ext/new_allocator.h: Same.
	* include/ext/array_allocator.h: Same.
	* include/ext/vstring_util.h: Same.
	* include/ext/vstring_fwd.h: Same.
	* include/ext/mt_allocator.h: Same.
	* include/ext/debug_allocator.h: Same.
	* include/ext/slist: Same.
	* include/ext/stdio_sync_filebuf.h: Same.
	* include/ext/hash_fun.h: Same.
	* include/ext/malloc_allocator.h: Same.
	* include/ext/functional: Same.
	* include/ext/bitmap_allocator.h: Same.
	* include/ext/pod_char_traits.h: Same.
	* include/ext/vstring.h: Same.
	* include/ext/ropeimpl.h: Same.
	* include/ext/hash_set: Same.
	* include/ext/memory: Same.
	* include/ext/rope: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/bits/concurrence.h: Same.
	* include/bits/atomicity.h: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* config/locale/gnu/collate_members.cc: Same.
	* config/locale/gnu/ctype_members.cc: Same.
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/gnu/codecvt_members.cc: Same.
	* config/locale/gnu/messages_members.cc: Same.
	* config/locale/gnu/c_locale.h: Same.
	* config/locale/gnu/monetary_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.
	* config/locale/ieee_1003.1-2001/c_locale.h: Same.
	* config/locale/generic/numeric_members.cc: Same.
	* config/locale/generic/collate_members.cc: Same.
	* config/locale/generic/ctype_members.cc: Same.
	* config/locale/generic/c_locale.cc: Same.
	* config/locale/generic/codecvt_members.cc: Same.
	* config/locale/generic/messages_members.cc: Same.
	* config/locale/generic/c_locale.h: Same.
	* config/locale/generic/monetary_members.cc: Same.
	* config/locale/generic/time_members.cc: Same.
	* config/os/aix/atomicity.h: Same.
	* config/os/irix/atomicity.h: Same.
	* config/cpu/powerpc/atomicity.h: Same.
	* config/cpu/cris/atomicity.h: Same.
	* config/cpu/ia64/atomicity.h: Same.
	* config/cpu/alpha/atomicity.h: Same.
	* config/cpu/m68k/atomicity.h: Same.
	* config/cpu/hppa/atomicity.h: Same.
	* config/cpu/mips/atomicity.h: Same.
	* config/cpu/sparc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/i486/atomicity.h: Same.
	* config/cpu/sh/atomicity.h: Same.
	* config/cpu/generic/atomicity.h: Same.
	* config/cpu/s390/atomicity.h: Same.
	* config/io/c_io_stdio.h: Same.
	* config/io/basic_file_stdio.cc: Same.
	* config/io/basic_file_stdio.h: Same.	
	* src/misc-inst.cc: Same.
	* src/concept-inst.cc: Same.
	* src/ext-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/pool_allocator.cc: Same.
	* src/bitmap_allocator.cc: Same.
	* src/mt_allocator.cc: Same.
	* libsupc++/exception: Same.
	* libsupc++/vterminate.cc: Same.
	* testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
	* testsuite/ext/hash_map/14648.cc: Same.	

	* libsupc++/eh_alloc.cc: Correct comment line spacing.

From-SVN: r108775
2005-12-19 00:56:05 +00:00
Paolo Carlini e75ea710dd stl_algobase.h (__copy_normal::copy_n): Uglify to __copy_n.
2005-12-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
	to __copy_n.
	(__copy_backward::copy_b): Likewise to __copy_b.
	(__copy_backward_normal::copy_b_n): Likewise to __copy_b_n.
	(copy, __copy_backward_aux, copy_backward): Adjust.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (partial_sort_copy): Add
	_BinaryPredicateConcept<_Compare, _InputValueType, _OutputValueType>
	(merge, set_union, set_symmetric_difference): Add
	_OutputIteratorConcept<_OutputIterator, _ValueType2>.
	(binary_search): Remove redundant _BinaryPredicateConcept<_Compare,
	_ValueType, _Tp>, taken care by lower_bound.
	* include/bits/stl_algo.h: Cosmetic changes.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>
	    Howard Hinnant  <hhinnant@apple.com>

	* include/bits/stl_algo.h (merge, includes, set_union,
	set_intersection, set_difference, set_symmetric_difference):
	Fix concept checks.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (partial_sort_copy, lower_bound,
	upper_bound, equal_range, binary_search): Fix concept checks.

Co-Authored-By: Howard Hinnant <hhinnant@apple.com>

From-SVN: r108758
2005-12-18 15:53:10 +00:00
Paolo Carlini b35c082263 [multiple changes]
2005-09-12  Chris Jefferson  <chris@bubblescope.net>

	* include/bits/stl_algo.h (search_n): Delegate to specializations.
	(search_n(,,,,binary_predicate)): Likewise.
        (__search_n(forward_iterator_tag)): Original search_n, tweak to
        remove an unnecessary comparison.
        (__search_n(,,,,binary_predicate,forward_iterator_tag)): Likewise.

2005-09-12  Jim Xochellis  <jimxoch@yahoo.gr>

        * include/bits/stl_algo.h (__search_n(std::random_access_iterator_tag)):
	Add specialization.
        (__search_n(,,,,binary_predicate,std::random_access_iterator_tag)):
        Likewise.

From-SVN: r104192
2005-09-12 21:13:04 +00:00
Kelley Cook 83f517994d All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103192
2005-08-17 02:28:44 +00:00
Paolo Carlini c1806f89e0 [multiple changes]
2005-07-01  Paolo Carlini  <pcarlini@suse.de>

        Port from libstdcxx_so_7-branch:
	2004-10-28  Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/17441
	* include/bit/stl_algo.h (find(,,,input_iterator_tag),
	find(,,,random_access_interator_tag),
	find_if(,,,input_iterator_tag),
	find_if(,,,random_access_iterator_tag)): Uglify function name.
	(find, find_if): Use new uglified specialisation names.
	* testsuite/25_algorithms/find/17441.cc: New.

From-SVN: r101501
2005-07-01 08:25:11 +00:00
Paolo Carlini 0e994557d3 [multiple changes]
2005-05-24  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/25_algorithms/equal.cc: Move to...
	* testsuite/25_algorithms/equal: ... here.
	* testsuite/25_algorithms/lower_bound.cc: Move to...
	* testsuite/25_algorithms/lower_bound: ... here.

2005-05-24  Paolo Carlini  <pcarlini@suse.de>

        Port from libstdcxx_so_7-branch:
	2005-20-05  Chris Jefferson  <chris@bubblescope.net>

	* testsuite/25_algorithms/heap.cc: Move to...
	* testsuite/25_algorithms/heap/heap.cc: ...here.
	* testsuite/25_algorithms/partition.cc: Move to...
	* testsuite/25_algorithms/partition/partition.cc: ...here.

	2005-03-29  Christopher Jefferson  <chris@bubblescope.net>

	* testsuite/25_algorithms/includes/1.cc: Add tests.
	* testsuite/25_algorithms/search/1.cc: Likewise.
	* testsuite/25_algorithms/unique_copy/1.cc: Likewise.
	* testsuite/25_algorithms/swap_ranges/1.cc: New.
	* testsuite/25_algorithms/swap_ranges/check_type.cc: New.
	* testsuite/25_algorithms/rotate.cc: Move to...
	* testsuite/25_algorithms/rotate/rotate.cc: ... here.
	* testsuite/25_algorithms/rotate/1.cc: New.
	* testsuite/25_algorithms/rotate/check_type.cc: New.
	* testsuite/25_algorithms/search_n/iterator.cc: Fix typo.

	2005-03-14  Christopher Jefferson  <chris@bubblescope.net>

	* include/bits/stl_algo.h (replace_copy, replace_copy_if):
	Don't assume that __new_value and *__first are convertible to
	each other.

	* testsuite/25_algorithms/find/1.cc: New.
	* testsuite/25_algorithms/find/check_type.cc: New.
	* testsuite/25_algorithms/find_if/1.cc: New.
	* testsuite/25_algorithms/find_if/check_type.cc: New.
	* testsuite/25_algorithms/replace/1.cc: New.
	* testsuite/25_algorithms/replace/check_type.cc: New.
	* testsuite/25_algorithms/replace_if/1.cc: New.
	* testsuite/25_algorithms/replace_if/check_type.cc: New.
	* testsuite/25_algorithms/replace_copy/1.cc: New.
	* testsuite/25_algorithms/replace_copy/check_type.cc: New.
	* testsuite/25_algorithms/replace_copy_if/1.cc: New.
	* testsuite/25_algorithms/replace_copy_if/check_type.cc: New.
	* testsuite/25_algorithms/remove/1.cc: New.
	* testsuite/25_algorithms/remove/check_type.cc: New.
	* testsuite/25_algorithms/remove_if/1.cc: New.
	* testsuite/25_algorithms/remove_if/check_type.cc: New.
	* testsuite/25_algorithms/count/1.cc: New.
	* testsuite/25_algorithms/count/check_type.cc: New.
	* testsuite/25_algorithms/count_if/1.cc: New.
	* testsuite/25_algorithms/count_if/check_type.cc: New.

	2005-02-27  Christopher Jefferson  <chris@bubblescope.net>
        	    Paolo Carlini  <pcarlini@suse.de>

	* testsuite/ext/is_heap/check_type.cc: New.

	2005-02-27  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/ext/is_heap/1.cc: New.

	2005-02-01  Christopher Jefferson  <chris@bubblescope.net>

	* testsuite/ext/median.cc: New.
	* testsuite/25_algorithms/adjacent_find/1.cc: New.
	* testsuite/25_algorithms/adjacent_find/check_type.cc: New.
	* testsuite/25_algorithms/search/1.cc: New.
	* testsuite/25_algorithms/search/check_type.cc: New.
	* testsuite/25_algorithms/unique_copy/1.cc: New.
	* testsuite/25_algorithms/unique_copy/check_type.cc: New.
	* testsuite/25_algorithms/partial_sort/1.cc: New.
	* testsuite/25_algorithms/partial_sort/check_type.cc: New.
	* testsuite/25_algorithms/partial_sort_copy/1.cc: New.
	* testsuite/25_algorithms/partial_sort_copy/check_type.cc: New.
	* testsuite/25_algorithms/lower_bound/1.cc: New.
	* testsuite/25_algorithms/lower_bound/check_type.cc: New.
	* testsuite/25_algorithms/upper_bound/1.cc: New.
	* testsuite/25_algorithms/upper_bound/check_type.cc: New.
	* testsuite/25_algorithms/merge/1.cc: New.
	* testsuite/25_algorithms/merge/check_type.cc: New.
	* testsuite/25_algorithms/inplace_merge/1.cc: New.
	* testsuite/25_algorithms/inplace_merge/check_type.cc: New.
	* testsuite/25_algorithms/stable_sort/1.cc: New.
	* testsuite/25_algorithms/stable_sort/check_type.cc: New.
	* testsuite/25_algorithms/nth_element/1.cc: New.
	* testsuite/25_algorithms/nth_element/check_type.cc: New.
	* testsuite/25_algorithms/equal_range/1.cc: New.
	* testsuite/25_algorithms/equal_range/check_type.cc: New.
	* testsuite/25_algorithms/binary_search/1.cc: New.
	* testsuite/25_algorithms/binary_search/check_type.cc: New.
	* testsuite/25_algorithms/includes/1.cc: New.
	* testsuite/25_algorithms/includes/check_type.cc: New.
	* testsuite/25_algorithms/set_union/1.cc: New.
	* testsuite/25_algorithms/set_union/check_type.cc: New.
	* testsuite/25_algorithms/set_intersection/1.cc: New.
	* testsuite/25_algorithms/set_intersection/check_type.cc: New.
	* testsuite/25_algorithms/set_difference/1.cc: New.
	* testsuite/25_algorithms/set_difference/check_type.cc: New.
	* testsuite/25_algorithms/set_symmetric_difference/1.cc: New.
	* testsuite/25_algorithms/set_symmetric_difference/check_type.cc: New.
	* testsuite/25_algorithms/min_element/1.cc: New.
	* testsuite/25_algorithms/min_element/check_type.cc: New.
	* testsuite/25_algorithms/max_element/1.cc: New.
	* testsuite/25_algorithms/max_element/check_type.cc: New.
	* testsuite/25_algorithms/prev_permutation/1.cc: New.
	* testsuite/25_algorithms/prev_permutation/check_type.cc: New.
	* testsuite/25_algorithms/next_permutation/1.cc: New.
	* testsuite/25_algorithms/next_permutation/check_type.cc: New.
	* testsuite/25_algorithms/find_first_of/1.cc: New.
	* testsuite/25_algorithms/find_first_of/check_type.cc: New.
	* testsuite/25_algorithms/find_end/1.cc: New.
	* testsuite/25_algorithms/find_end/check_type.cc: New.
	* testsuite/25_algorithms/equal/check_type.cc: Insert iterator type.
	* testsuite/25_algorithms/lexicographical_compare/check_type.cc:
	Likewise.

	2005-01-10  Christopher Jefferson <chris@bubblescope.net>

	* testsuite/25_algorithms/lexicographical_compare/check_type.cc: New.
	* testsuite/25_algorithms/lexicographical_compare/1.cc: Likewise.
	* testsuite/25_algorithms/mismatch/check_type.cc: Likewise.
	* testsuite/25_algorithms/mismatch/1.cc: Likewise.
	* testsuite/25_algorithms/equal/check_type.cc: New.
	* testsuite/25_algorithms/equal/1.cc: New.

From-SVN: r100127
2005-05-24 22:53:43 +00:00
Paolo Carlini 561e7a36e3 [multiple changes]
2005-05-24  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/debug/string (class basic_string): Add missing
	default template arguments; provide typedefs for char
	and wchar_t.
	(operator[]): Allow s[s.size()] in debug mode, but not
	pedantic mode.

2005-05-24  Paolo Carlini  <pcarlini@suse.de>

	Port from libstdcxx_so_7-branch:
	2005-04-25  Christopher Jefferson  <chris@bubblescope.net>

	* include/bits/stl_algo.h (count): Correct concept checks.
	(search_n) : Likewise.
	* testsuite/25_algorithms/search_n/check_type.cc: New.

	* testsuite/testsuite_iterators.h
	(random_access_iterator_wrapper::operator+): Move out of
	class to external function, and add symmetric version.

	2005-03-14  Christopher Jefferson  <chris@bubblescope.net>

	* testsuite/testsuite_iterators.h (WritableObject::WritableObject):
	Add const.

	2005-02-01  Christopher Jefferson  <chris@bubblescope.net>

	* testsuite/testsuite_iterators.h (random_access_iterator_wrapper::
	operator--): Fix typo.
	(OutputContainer::OutputContainer): Correct zeroing array.
	(WritableObject::operator==): Fix typo.
        (WritableObject::operator=): make operator= templated
	to allow differing types to be assigned.
	(WritableObject::operator++): Fix checking if iterator is
	written to multiple times.
	(random_access_iterator_wrapper::operator+): Add const.
	(random_access_iterator_wrapper::operator-): Likewise.
	(random_access_iterator_wrapper::operator[]): Add dereference.

From-SVN: r100101
2005-05-24 10:58:22 +00:00
Paolo Carlini a809005264 stl_algo.h (__rotate<_RandomAccessIterator>): Don't qualify __tmp as const, _ValueType is not necessarily Assignable.
2005-05-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (__rotate<_RandomAccessIterator>):
	Don't qualify __tmp as const, _ValueType is not necessarily
	Assignable.
	* include/bits/stl_algobase.h (swap, __iter_swap<false>):
	Likewise, as an harmless extension.

From-SVN: r100011
2005-05-20 08:58:23 +00:00
Paolo Carlini a9dd5a466a PR libstdc++/21244 (cont)
2005-04-28  Paolo Carlini  <pcarlini@suse.de>
	    Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR libstdc++/21244 (cont)
	* include/bits/cpp_type_traits.h (struct __traitor): Convert
	to bool the values.
	* include/bits/stl_algo.h: Convert _S_threshold to int.
	* include/bits/stl_bvector.h: Revert previous change, convert
	_S_word_bit to int.
	* include/debug/formatter.h: Convert __max_parameters to
	size_t.
	* include/ext/mt_allocator.h: Likewise for _S_chunk_size.
	* include/ext/pool_allocator.h: Likewise for _S_max_bytes and
	_S_align.
	* include/ext/rope: Likewise for _S_alloc_granularity; convert
	_S_max_rope_depth to int.
	* include/ext/ropeimpl.h: Convert _S_path_cache_len to int;
	_S_max_rope_depth to int; _S_copy_max to size_t.

Co-Authored-By: Gabriel Dos Reis <gdr@integrable-solutions.net>

From-SVN: r98915
2005-04-28 07:50:48 +00:00
Jonathan Wakely 5ce7999da0 * include/bits/stl_algo.h (rotate_copy): Add missing std qualification.
From-SVN: r98326
2005-04-18 17:04:04 +01:00
Chris Jefferson 158414d635 stl_algo.h (find_first_of(,,,,pred)): Remove invalid EqualOpConcept.
2004-10-29  Chris Jefferson  <chris@bubblescope.net>

	* include/bit/stl_algo.h (find_first_of(,,,,pred)):
	Remove invalid EqualOpConcept.
	* testsuite/25_algorithms/find_first_of/concept_check_1.cc: New.

From-SVN: r89853
2004-10-29 21:44:55 +00:00
Paolo Carlini dbb8bfe8c5 [multiple changes]
2004-10-06  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_sstream.h (_M_sync): When the caller is
	setbuf, don't trust _M_string.capacity() to be the size of
	the buffer area, use _M_string.size() in this case.
	* testsuite/27_io/basic_stringbuf/setbuf/char/4.cc: New.
	* testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc: Likewise.

	* include/bits/sstream.tcc (overflow): Avoid calling string::assign
	unnecessarily when the current _M_string is empty.

2004-10-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (__reverse(bidirectional_iterator_tag)):
	Avoid iterator postincrement.
	(__rotate): Likewise.

	* include/bits/stl_algo.h: Minor formatting tweaks.

2004-10-06  Christopher Jefferson <caj@cs.york.ac.uk>

	* include/bits/stl_algo.h (__reverse(random_access_iterator_tag)):
	Avoid iterator postincrement; fix swapping middle element with
	itself on odd-length inputs.

From-SVN: r88593
2004-10-06 09:06:59 +00:00
Jonathan Wakely a5fbe527f4 stl_algo.h (remove): Remove too restrictive concept-check.
2004-09-17  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/bits/stl_algo.h (remove): Remove too restrictive
	concept-check.

From-SVN: r87650
2004-09-17 14:11:59 +00:00
Bernardo Innocenti ed6814f7b3 Remove trailing whitespace (see ChangeLog for longwinded description).
From-SVN: r77479
2004-02-08 05:46:42 +01:00
Paolo Carlini 737ab798c5 stl_algo.h: Additional minor tweaks.
2004-02-01  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h: Additional minor tweaks.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

From-SVN: r77082
2004-02-01 23:19:55 +00:00
Paolo Carlini 8f7ca398ca stl_algo.h: Minor additional reformat, add copyright year.
2004-01-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h: Minor additional reformat, add
	copyright year.
	* include/bits/stl_algobase.h: Add copyright year.

From-SVN: r77058
2004-01-31 23:51:44 +00:00
Paolo Carlini ffa67767d0 stl_algo.h: Wrap overlong lines...
2004-01-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h: Wrap overlong lines, constify
	a few variables, reformat according to the coding standards.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/stl_heap.h: Likewise.

From-SVN: r77050
2004-01-31 21:37:11 +00:00
Benjamin Kosnik 82fa4538b5 re PR libstdc++/13284 (126 g++ failures due to lrand48 not defined)
2003-12-04  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/13284
	* include/bits/stl_algo.h (__random_number): Remove.
	(random_shuffle): Use rand, as permitted by DR 395.
	* include/ext/algorithm: Same.
	* linkage.m4 (GLIBCXX_CHECK_STDLIB_SUPPORT): Remove lrand48.
	* acconfig.h: Same.
	* crossconfig.m4: Remove HAVE_DRAND48, HAVE_LRAND48.
	* config.h.in: Regenerated.
	* configure: Same.
	* aclocal.m4: Same.

From-SVN: r74288
2003-12-04 19:37:21 +00:00
Benjamin Kosnik 285b36d6a5 [multiple changes]
2003-11-11  Doug Gregor  <gregod@cs.rpi.edu>

	* docs/html/debug.html: Document libstdc++ debug mode.
	* docs/html/debug_mode.html: Document libstdc++ debug mode design.
	* docs/html/test.html: Document how to test under debug mode.
	* docs/html/17_intro/howto.html: Document debug-mode macros.
	* include/Makefile.am: Install debug-mode headers.
	* src/Makefile.am: Include debug.cc.
	* include/bits/basic_string.tcc:
	  (basic_string::_S_construct): Fix NULL pointer check.
	  (__is_null_pointer): New.
	  Add precondition annotations.
	* include/bits/stream_iterator.h (istream_iterator,
	ostream_iterator): Added precondition annotations.
	* include/bits/streambuf_iterator.h (istreambuf_iterator): Ditto.
	* include/bits/stl_queue.h (queue, priority_queue): Ditto.
	* include/bits/stl_stack.h (stack): Ditto.
	* include/bits/basic_string.h (basic_string): Ditto.
	* include/bits/basic_string.tcc (basic_string): Ditto.
	* include/std/std_memory.h (auto_ptr): Ditto.
	* include/std/std_valarray.h (valarray): Ditto.
	* include/bits/stl_algo.h: Added algorithm precondition
	annotations.
	* include/bits/stl_algobase.h: Added algorithm precondition
	annotations.
	* include/bits/stl_numeric.h: Ditto.
	* include/ext/algorithm: Added algorithm precondition
	annotations.
	(__is_heap): Moved away from here.
	* include/bits/stl_heap.h: Added algorithm precondition
	annotations.
	(__is_heap): Moved to the top of this file.
	(__is_heap): Added iterator range overloads.
	* testsuite/20_util/auto_ptr_neg.cc: Fix line numbers to match up
	with changes in std_memory.h.
	* testsuite/23_containers/list/operators/4.cc: Don't verify
	performance guarantees when in debug mode.
	* testsuite/23_containers/bitset/invalidation/1.cc: New.
	* testsuite/23_containers/deque/invalidation/1.cc: New.
	* testsuite/23_containers/deque/invalidation/2.cc: New.
	* testsuite/23_containers/deque/invalidation/3.cc: New.
	* testsuite/23_containers/deque/invalidation/4.cc: New.
	* testsuite/23_containers/list/invalidation/1.cc: New.
	* testsuite/23_containers/list/invalidation/2.cc: New.
	* testsuite/23_containers/list/invalidation/3.cc: New.
	* testsuite/23_containers/list/invalidation/4.cc: New.
	* testsuite/23_containers/map/invalidation/1.cc: New.
	* testsuite/23_containers/map/invalidation/2.cc: New.
	* testsuite/23_containers/multimap/invalidation/1.cc: New.
	* testsuite/23_containers/multimap/invalidation/2.cc: New.
	* testsuite/23_containers/multiset/invalidation/1.cc: New.
	* testsuite/23_containers/multiset/invalidation/2.cc: New.
	* testsuite/23_containers/set/invalidation/1.cc: New.
	* testsuite/23_containers/set/invalidation/2.cc: New.
	* testsuite/23_containers/vector/invalidation/1.cc: New.
	* testsuite/23_containers/vector/invalidation/2.cc: New.
	* testsuite/23_containers/vector/invalidation/3.cc: New.
	* testsuite/23_containers/vector/invalidation/4.cc: New.
	* testsuite/25_algorithms/heap.cc: Don't verify
	performance guarantees when in debug mode.
	* include/debug/bitset: New.
	* include/debug/debug.h: New.
	* include/debug/deque: New.
	* include/debug/formatter.h: New.
	* include/debug/hash_map: New.
	* include/debug/hash_map.h: New.
	* include/debug/hash_multimap.h: New.
	* include/debug/hash_set: New.
	* include/debug/hash_set.h: New.
	* include/debug/hash_multiset.h: New.
	* include/debug/list: New.
	* include/debug/map: New.
	* include/debug/map.h: New.
	* include/debug/multimap.h: New.
	* include/debug/multiset.h: New.
	* include/debug/safe_base.h: New.
	* include/debug/safe_iterator.h: New.
	* include/debug/safe_iterator.tcc: New.
	* include/debug/safe_sequence.h: New.
	* include/debug/set: New.
	* include/debug/set.h: New.
	* include/debug/string: New.
	* include/debug/vector: New.
	* src/debug.cc: New.
	* config/linker-map.gnu: Add debug mode symbols.

2003-11-11  Benjamin Kosnik  <bkoz@redhat.com>

	* src/string-inst.cc: Tweak namespaces.
	* src/misc-inst.cc: Same.
	* docs/html/debug.html: Edits.
	* config/link-map.gnu: Remove cruft.

	* include/bits/c++config: Add in namespace associations.
	* include/std/std_bitset.h: Adjust namespace to __gnu_norm,
	comment tweaks.
	* include/bits/deque.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/vector.tcc: Same.

	* include/std/std_algorithm.h: Remove markup comments.
	* include/std/std_functional.h: Same.
	* include/std/std_iterator.h: Same.
	* include/std/std_numeric.h: Same.
	* include/std/std_utility.h: Same.
	* include/bits/stl_queue.h: Formatting tweaks.
	* include/bits/stl_stack.h: Same.
	* include/std/std_deque.h: Include debugging version in debug mode.
	* include/std/std_list.h: Same.
	* include/std/std_map.h: Same.
	* include/std/std_set.h: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_queue.h: Use deque, vector.
	* include/std/std_stack.h: Same.

From-SVN: r73459
2003-11-11 20:09:16 +00:00
Paolo Carlini 1638f5c9d0 re PR libstdc++/11480 (std::unique calls predicate too many times)
2003-10-14  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/11480
	* include/bits/stl_algo.h (unique): Fix.
	* testsuite/25_algorithms/unique.cc: Move to unique/1.cc.
	* testsuite/25_algorithms/unique/11480.cc: New, from the PR.
	* testsuite/25_algorithms/unique/2.cc: New.

From-SVN: r72478
2003-10-14 17:15:27 +00:00
Rainer Orth 222a5b1d67 linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0): Define.
* linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0): Define.
	(GLIBCXX_CHECK_STDLIB_SUPPORT): Use it to test for lrand48
	instead of drand48.
	* acconfig.h (HAVE_DRAND48): Renamed to HAVE_LRAND48.
	* crossconfig.m4 (*-freebsd*): Define HAVE_LRAND48 instead of
	HAVE_DRAND48.
	* config.h.in, configure: Regenerate.
	* include/bits/stl_algo.h: Use _GLIBCXX_HAVE_LRAND48 to guard
	lrand48 use.

From-SVN: r71990
2003-10-01 20:45:59 +00:00
Paolo Carlini ae7c3ba55f stl_algo.h: Minor cosmetic reformattings.
2003-09-30  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_algo.h: Minor cosmetic reformattings.

From-SVN: r71950
2003-09-30 20:16:28 +00:00
Paolo Carlini cbc6c296e6 stl_algo.h (search_n): Tweak, to spare the first --__n.
2003-09-30  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_algo.h (search_n): Tweak, to spare the
	first --__n.

From-SVN: r71946
2003-09-30 17:03:52 +00:00
Paolo Carlini 6821a40b74 stl_algo.h (search_n): Improve the previous fix as suggested by Martin.
2003-09-29  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_algo.h (search_n): Improve the previous
	fix as suggested by Martin.

From-SVN: r71913
2003-09-29 19:43:04 +00:00
Paolo Carlini e5012ba5ec [multiple changes]
2003-09-29  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/12296
	* include/bits/istream.tcc (peek): Set eofbit if sgetc
	returns eof.
	* testsuite/27_io/basic_istream/peek/char/12296.cc:
	New, from the PR.

2003-09-29  Nathan Myers  <ncm@cantrip.org>
	    Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/11400
	* include/bits/stl_algo.h (search_n):
	Use iterator_traits<>::difference_type for __n.
	* testsuite/25_algorithms/search_n/11400.cc: New, from the PR.

From-SVN: r71911
2003-09-29 17:36:18 +00:00
Jerry Quinn 119dbb1fce stl_algo.h (includes, [...]): Document.
2003-07-15  Jerry Quinn  <jlquinn@optonline.net>

	* include/bits/stl_algo.h (includes, set_union, set_intersection,
        set_difference, set_symmetric_difference, max_element, min_element,
        next_permutation, prev_permutation, find_first_of, find_end):
        Document.
	* include/bits/stl_algobase.h (copy,copy_backward):  Clarify overlap
        restrictions in docs.
	* include/bits/stl_heap.h (push_heap, pop_heap, make_heap, sort_heap):
        Document.
	* docs/doxygen/doxygroups.cc (setoperations):  New group.

From-SVN: r69387
2003-07-15 07:30:29 +00:00
Mark Mitchell f2ffecb112 c_locale.h: Include <cstdlib> and <cstring>.
* config/locale/generic/c_locale.h: Include <cstdlib> and
	<cstring>.
	* include/bits/boost_concept_check.h: Add this-> to unqualified
	method calls.
	* include/bits/deque.tcc: Likewise.
	* include/bits/locale_facets.h : Likewise.
	* include/bits/ostream.tcc: Likewise.
	* include/bits/stl_algo.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/ext/rope: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/stdio_filebuf.h: Likewise.

From-SVN: r69315
2003-07-14 02:52:05 +00:00
Benjamin Kosnik 3d7c150e3f Move from CPP to CXX.
2003-07-04  Benjamin Kosnik  <bkoz@redhat.com>

	Move from CPP to CXX.
	* include/bits/c++config: Move to GLIBCXX from GLIBCPP.
	* testsuite/Makefile.am: Same.
	* testsuite/Makefile.in: Regenerate.
	* po/Makefile.am: Same.
	* po/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	* libsupc++/Makefile.in: Regenerate.
	* libmath/Makefile.am: Same.
	* libmath/Makefile.in: Regenerate.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.
	* src/Makefile.am: Same.
	* src/Makefile.in: Regenerate.
	* acconfig.h: Same.
	* configure.host: Same.
	* configure.in: Same.
	* configure: Regenerate.
	* acinclude.m4: Same.
	* aclocal.m4: Same.
	* src: Change all files in this directory.
	* testsuite: Same.
	* include: Same, standardize include guards.
	* config: Same.
	* libsupc++: Same.

From-SVN: r68958
2003-07-05 04:05:45 +00:00
Paolo Carlini 369b78b0e4 stl_heap.h: Fully qualify standard functions with std::, thus avoiding Koenig lookup.
2003-07-04  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_heap.h: Fully qualify standard
	functions with std::, thus avoiding Koenig lookup.
	* include/bits/stl_iterator_base_funcs.h: Likewise.

	* include/bits/stl_algo.h: Qualify __iterator_category too.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.

	* include/bits/stl_algo.h: Don't qualify the pair type.

From-SVN: r68915
2003-07-04 07:22:19 +00:00
Paolo Carlini c868f37e40 stl_algo.h (LOTS): Fully qualify standard functions with std::, thus avoiding Koenig lookup.
2003-06-29  Paolo Carlini  <pcarlini@unitus.it>

	* include/bits/stl_algo.h (LOTS): Fully qualify standard
	functions with std::, thus avoiding Koenig lookup.

From-SVN: r68690
2003-06-30 01:46:42 +00:00
Phil Edwards 08addde65f BUGS: Update from 2.90.8 snapshot.
2003-06-10  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/17_intro/BUGS:  Update from 2.90.8 snapshot.
	* docs/html/17_intro/CHECKLIST:  Bring up to date with respect to
	correctness of container::iterator typedefs.  Fix whitespace.
	* docs/html/20_util/howto.html, docs/html/ext/howto.html:  Add links
	to allocator docs.
	* docs/html/documentation.html:  Regenerate.

	* include/bits/basic_string.h, include/bits/basic_string.tcc,
	include/bits/deque.tcc, include/bits/list.tcc, include/bits/stl_algo.h,
	include/bits/stl_algobase.h, include/bits/stl_bvector.h,
	include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
	include/bits/stl_list.h, include/bits/stl_uninitialized.h,
	include/bits/stl_vector.h, include/bits/vector.tcc,
	include/ext/algorithm, include/ext/slist, include/std/std_bitset.h:
	Change _Iter names to _Iterator, and __pos to __position.

	* include/bits/stl_relops.h, include/bits/stl_numeric.h,
	include/bits/stl_multiset.h, include/bits/stl_set.h:
	Remove emacs markers.

	* include/bits/stl_threads.h (_STL_auto_lock):  Add __unused__.

From-SVN: r67736
2003-06-10 21:52:25 +00:00
Benjamin Kosnik 655d78212b stl_algo.h: Enums as _S_.
2003-05-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo.h: Enums as _S_.
	* include/bits/stl_tree.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/ext/stl_hashtable.h: Same.
	* src/ios.cc: And here.

	* include/std/std_sstream.h: Replace _M_really_sync to _M_sync.
	* include/bits/sstream.tcc: Same.

        * include/bits/basic_ios.h: Correct spacing for '< ctype'.

	* include/bits/locale_facets.tcc: Replace __temp to __tmp.

	* include/bits/locale_facets.h (__num_base): Remove protected.
	Use _S_[io]* names for enumerations.
	(_S_format_int): Remove.
	* include/bits/locale_facets.tcc: Same.
	* src/locale.cc: Same.

	* include/std/std_sstream.h (stringbuf::str): Tweak formatting.

From-SVN: r66552
2003-05-07 05:01:59 +00:00
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Phil Edwards bf551f96b1 doxygroups.cc: New group on binary searching.
2002-04-17  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/doxygroups.cc:  New group on binary searching.
	* include/bits/stl_algo.h:  Document binary searches and merges.
	* include/bits/stl_deque.h:  The 'map' member is not the 'map' class.

From-SVN: r52453
2002-04-18 02:55:50 +00:00
Jonathan Wakely 39b945d23b stl_algo.h (unique_copy, [...]): Doxygenate.
2002-04-05  Jonathan Wakely <jw@kayari.org>

	* include/bits/stl_algo.h (unique_copy, __gcd, rotate, rotate_copy,
	random_shuffle, partition, stable_partition, sort, stable_sort,
	partial_sort, partial_sort_copy, nth_element):  Doxygenate.

From-SVN: r51927
2002-04-05 17:58:41 +00:00
Phil Edwards 04b7c941e9 Intro.3: Date tweak.
2002-03-27  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Date tweak.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Point to tables.html.
	* docs/doxygen/mainpage.html:  Date tweak.
	* docs/doxygen/run_doxygen:  Version tweak.  Copy tables.html over.
	* docs/doxygen/tables.html:  Fill in the blanks.

	* docs/doxygen/user.cfg.in (ALIASES):  Remove maint and endmaint.
	* include/bits/stl_algo.h:  Likewise; use expanded form.
	* include/bits/stl_alloc.h:  Likewise.
	* include/bits/stl_construct.h:  Likewise.
	* include/bits/stl_deque.h:  Likewise.
	* include/bits/stl_iterator_base_types.h:  Likewise.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_relops.h:  Likewise.
	* include/bits/stl_tempbuf.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.
	* include/std/std_memory.h:  Likewise.

	* include/bits/stl_deque.h:  Point into tables.html and add @ingroup.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.

From-SVN: r51471
2002-03-27 21:41:36 +00:00
Benjamin Kosnik d3d526aca6 stl_tree.h (_S_rb_tree_red): Make enum.
2002-03-06  Benjamin Kosnik  <bkoz@redhat.com>
	    Stephen M. Webb  <stephen.webb@bregmasoft.com>

	* include/bits/stl_tree.h (_S_rb_tree_red): Make enum.
	(_S_rb_tree_black): Make enum.
	Clean. Format.
	* include/bits/stl_bvector.h (__WORD_BIT): To _M_word_bit, enum.
	* include/bits/stl_algo.h (__stl_chunk_size): _M_chunk_size, enum.
	(__stl_threshold): _M_threshold, enum.
	* src/stl-inst.cc: Same.
	* config/linker-map.gnu: Remove.

	* testsuite/23_containers/vector_bool.cc: New.

Co-Authored-By: Stephen M. Webb <stephen.webb@bregmasoft.com>

From-SVN: r50393
2002-03-07 06:53:23 +00:00
Phil Edwards 037cfe71e0 user.cfg.in: Also document deprecated entries.
2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/user.cfg.in:  Also document deprecated entries.
	* docs/html/Makefile:  Example rule to rebuild porting-howto.html.
	* docs/html/17_intro/howto.html:  "gcc"->"GCC" changes, when
	referring to the collection as a whole.  New section on which macros
	can be redefined by the user.
	* docs/html/19_diagnostics/howto.html:  Update note for concepts.
	* docs/html/20_util/howto.html:  Update link to SGI.
	* docs/html/faq/index.html:  Update snapshot versions.  New entry
	on why g++ (but not gcc) must currently predefine certain macros.
	* docs/html/faq/index.txt:  Regenerated.

	* include/bits/basic_string.h (basic_string::_S_construct):  Fix
	names in declaration.
	(basic_string::compare):  These are no longer optional.
	* include/bits/ostream.tcc:  Tweak closing brace placement.
	* include/bits/stl_algo.h:  Lots of initial doxygen comment hooks.
	* include/std/std_sstream.h:  Fix typo in comment.
	* include/bits/locale_facets.tcc:  Remove unneeded header inclusion.
	* src/locale.cc:  Likewise.

From-SVN: r50376
2002-03-06 21:22:56 +00:00
Benjamin Kosnik 005326029f stl_algo (__stl_threshold): Declare external.
2002-02-11   Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo (__stl_threshold): Declare external.
	(__stl_chunk_size): Same.
	* include/bits/stl_bvector.h (__WORD_BIT): Same.
	* include/bits/stl_tree.h (_S_rb_tree_red): Same.
	(_S_rb_tree_black): Same.
	* src/stl-inst.cc (__stl_threshold): Define.
	(__stl_chunk_size): Same.
	(__WORD_BIT): Same.
	(_S_rb_tree_red): Same.
	(_S_rb_tree_black): Same.

	* config/io/basic_file_libio.h (__basic_file): Add declarations.
	* include/bits/basic_file.h: Remove.
	* config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION
	Declare generic types, specialization.
        * config/io/basic_file_stdio.cc: Definitions.
	* config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE.
	Declare generic types.
	* include/Makefile.am (bits_headers): Remove basic_file.h.
	(extra_target_headers): Change basic_file_model.h to basic_file.h.
	(stamp-target): Same.

	* include/bits/stl_alloc.h: Tweaks.
	* include/bits/localefwd.h: Same.

From-SVN: r49697
2002-02-12 04:35:58 +00:00
Phil Edwards 02669b681e stl_algo.h (transform (both signatures), generate_n): Use __typeof__ in concept checks.
2002-02-10  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_algo.h (transform (both signatures), generate_n):
	Use __typeof__ in concept checks.

From-SVN: r49653
2002-02-10 09:05:46 +00:00
Jonathan Wakely c0d8816157 stl_algo.h (__median, [...]): Doxygenate.
2002-02-10  Jonathan Wakely  <cow@compsoc.man.ac.uk>

	* include/bits/stl_algo.h (__median, for_each, find, find_if,
	adjacent_find, count, count_if, search, search_n, swap_ranges,
	transform, replace, replace_if, replace_copy, replace_copy_if,
	generate, generate_n, remove_copy, remove_copy_if, remove, remove_if,
	unique, unique_copy, reverse, reverse_copy):  Doxygenate.

From-SVN: r49652
2002-02-10 09:00:41 +00:00
Phil Edwards 6b20f9b59a stl_tempbuf.h (_Temporary_buffer): Add doxygen hook.
2002-01-24  Phil Edwards  <pme@gcc.gnu.org>

	* include/bits/stl_tempbuf.h (_Temporary_buffer):  Add doxygen hook.
	* include/bits/stl_algo.h:  Include stl_tempbuf.h.
	* include/ext/memory:  Do not include stl_tempbuf.h.
	(temporary_buffer):  Add doxygen hook.
	(__get_temporary_buffer, get_temporary_buffer,
	return_temporary_buffer):  Move back to std:: header...
	* include/std/std_memory.h:  ...here.  Do not include stl_tempbuf.h.
	* include/ext/rope:  Do not include stl_tempbuf.h.
	* include/ext/stl_hashtable.h:  Likewise.
	* include/std/std_algorithm.h:  Likewise.
	* testsuite/20_util/temporary_buffer.cc:  New file.

From-SVN: r49199
2002-01-25 04:14:40 +00:00