Commit Graph

35 Commits

Author SHA1 Message Date
Jakub Jelinek
7adcbafe45 Update copyright years. 2022-01-03 10:42:10 +01:00
François Dumont
e7fac1e1a5 libstdc++: [_GLIBCXX_DEBUG] Enhance std::erase_if for vector/deque
libstdc++-v3/ChangeLog:

	* include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and
	__niter_wrap to limit _GLIBCXX_DEBUG mode impact.
	* include/std/vector (erase_if): Likewise.
2021-12-08 19:09:47 +01:00
Jonathan Wakely
82e3a82687 libstdc++: Restore debug checks in uniform container erasure functions
This partially reverts commit 561078480f.

If we avoid all debug mode checks when erasing elements then we fail to
invalidate safe iterators to the removed elements. This reverts the
recent changes in r12-4083 and r12-4233, restoring the debug checking.

libstdc++-v3/ChangeLog:

	* include/experimental/deque (erase, erase_if): Revert changes
	to avoid debug mode overhead.
	* include/experimental/map (erase, erase_if): Likewise.
	* include/experimental/set (erase, erase_if): Likewise.
	* include/experimental/unordered_map (erase, erase_if):
	Likewise.
	* include/experimental/unordered_set (erase, erase_if):
	Likewise.
	* include/experimental/vector (erase, erase_if): Likewise.
	* include/std/deque (erase, erase_if): Likewise.
	* include/std/map (erase, erase_if): Likewise.
	* include/std/set (erase, erase_if): Likewise.
	* include/std/unordered_map (erase, erase_if): Likewise.
	* include/std/unordered_set (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.
2021-10-08 12:20:25 +01:00
Jonathan Wakely
561078480f libstdc++: Avoid debug checks in uniform container erasure functions
In commit r12-4083 I tried to make the std::erase and std::erase_if
function avoid the unnecessary overhead of safe iterators. It didn't
work, for two reasons. Firstly, for the RB tree containers the
__niter_base function is a no-op (because the iterators aren't
random access) so the safe iterators were still used. Secondly, for the
cases where __niter_base did remove the safe iterator layer, there was
still unnecessary overhead to create a new safe iterator and link it to
the container.

This solves the problem by simply binding a reference to the non-debug
version of the conainer. For normal mode this is a no-op, and for debug
mode it binds a reference to the debug container's base class. That
means the rest of the function operates directly on the non-debug
container, and avoids all checking.

For std::basic_string there's no need to unwrap anything, because we use
std::basic_string directly in debug mode anyway.

libstdc++-v3/ChangeLog:

	* include/bits/erase_if.h (__erase_nodes_if): Remove redundant
	__niter_base calls.
	* include/std/string (erase, erase_if): Likewise.
	* include/std/deque (erase, erase_if): Access non-debug
	container directly.
	* include/std/map (erase, erase_if): Likewise.
	* include/std/set (erase, erase_if): Likewise.
	* include/std/unordered_map (erase, erase_if): Likewise.
	* include/std/unordered_set (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.
	* include/experimental/deque (erase, erase_if): Likewise.
	* include/experimental/map (erase, erase_if): Likewise.
	* include/experimental/set (erase, erase_if): Likewise.
	* include/experimental/unordered_map (erase, erase_if):
	Likewise.
	* include/experimental/unordered_set (erase, erase_if):
	Likewise.
	* include/experimental/vector (erase, erase_if): Likewise.
2021-10-07 17:52:04 +01:00
Jonathan Wakely
acf3a21cbc libstdc++: Reduce header dependencies for C++20 std::erase [PR92546]
This reduces the preprocessed size of <deque>, <string> and <vector> by
not including <bits/stl_algo.h> for std::remove and std::remove_if.

Also unwrap iterators using __niter_base, to avoid redundant debug mode
checks.

	PR libstdc++/92546
	* include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
	unwrap debug iterators.
	* include/bits/refwrap.h: Do not error if included in C++03.
	* include/bits/stl_algo.h (__remove_if): Move to ...
	* include/bits/stl_algobase.h (__remove_if): ... here.
	* include/std/deque (erase, erase_if): Use __remove_if instead of
	remove and remove_if.
	* include/std/string (erase, erase_if): Likewise.
	* include/std/vector (erase, erase_if): Likewise.
2021-10-01 20:37:02 +01:00
Jakub Jelinek
99dee82307 Update copyright years. 2021-01-04 10:26:59 +01:00
Jonathan Wakely
55b00d14f4 libstdc++: Update __cpp_lib_erase_if macro (P1115R3)
Now that this feature has been approved for C++20 we can define the
macro to the official value.

	* include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L.
	* include/std/deque: Likewise.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/string: Likewise.
	* include/std/vector: Likewise.
	* include/std/version: Likewise.
	* testsuite/23_containers/deque/erasure.cc: Test for new value.
	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
	* testsuite/23_containers/list/erasure.cc: Likewise.
	* testsuite/23_containers/map/erasure.cc: Likewise.
	* testsuite/23_containers/set/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
	* testsuite/23_containers/vector/erasure.cc: Likewise.
2020-02-15 10:25:23 +00:00
Jakub Jelinek
8d9254fc8a Update copyright years.
From-SVN: r279813
2020-01-01 12:51:42 +01:00
Jonathan Wakely
8eb60b2f22 Remove include directives for deleted Profile Mode headers
* include/std/array: Remove references to profile mode.
	* include/std/bitset: Likewise.
	* include/std/deque: Likewise.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/map: Likewise.
	* include/std/set: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/vector: Likewise.
	* testsuite/17_intro/headers/c++1998/profile_mode.cc: New test.
	* testsuite/17_intro/headers/c++2011/profile_mode.cc: New test.

From-SVN: r276152
2019-09-26 17:08:24 +01:00
Jonathan Wakely
45a8d80fec Define __cpp_lib_erase_if feature test macro
The C++2a draft specifies the value 201811L for this, but as an
extension we return the number of elements erased. This is expected to
be standardised, so the macro has the value 201900L until a proper value
is specified in the draft.

	* include/bits/erase_if.h: Define __cpp_lib_erase_if.
	* include/std/deque: Likewise.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/string: Likewise.
	* include/std/vector: Likewise.
	* include/std/version: Likewise.
	* testsuite/21_strings/basic_string/erasure.cc: Test macro.
	* testsuite/23_containers/deque/erasure.cc: Likewise.
	* testsuite/23_containers/forward_list/erasure.cc: Likewise.
	* testsuite/23_containers/list/erasure.cc: Likewise.
	* testsuite/23_containers/map/erasure.cc: Likewise.
	* testsuite/23_containers/set/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
	* testsuite/23_containers/vector/erasure.cc: Likewise.

From-SVN: r267810
2019-01-10 13:49:31 +00:00
Jakub Jelinek
a554497024 Update copyright years.
From-SVN: r267494
2019-01-01 13:31:55 +01:00
Edward Smith-Rowland
32bbb362ef The remainder of the Pre-emptively support P0646R1 for std container erasure.
From-SVN: r266673
2018-11-30 16:13:29 +00:00
Edward Smith-Rowland
355c62ce02 Only include bits/stl_algo.h for C++20.
2018-11-29  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Only include bits/stl_algo.h for C++20.
	* include/std/deque: Only include bits/stl_algo.h for C++20.
	* include/std/string: Ditto.
	* include/std/vector: Ditto.

From-SVN: r266624
2018-11-29 15:17:17 +00:00
Edward Smith-Rowland
a62b871d65 Fix erasure goofs.
2018-11-29  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Fix erasure goofs.
	* include/experimental/deque: Make inline.
	* include/std/deque: Include bits/stl_algo.h.
	(erase, erase_if): Make inline.
	* include/std/string: Include bits/stl_algo.h.
	* include/std/unordered_set: Add erase, erase_if!
	* include/std/vector: Include bits/stl_algo.h.
	* testsuite/21_strings/basic_string/erasure.cc:
	Add { dg-options "-std=gnu++2a" }.
	* testsuite/23_containers/deque/erasure.cc: Ditto.
	* testsuite/23_containers/forward_list/erasure.cc: Ditto.
	* testsuite/23_containers/list/erasure.cc: Ditto.
	* testsuite/23_containers/map/erasure.cc: Ditto.
	* testsuite/23_containers/set/erasure.cc: Ditto.
	* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
	* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
	* testsuite/23_containers/vector/erasure.cc: Ditto.

From-SVN: r266616
2018-11-29 13:43:55 +00:00
Edward Smith-Rowland
188588e443 Implement uniform container erasure for C++20.
2018-11-28  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement uniform container erasure for C++20.
	* include/Makefile.am: Move erase_if.h.
	* include/Makefile.in: Move erase_if.h.
	* include/experimental/bits/erase_if.h: Move ...
	* include/bits/erase_if.h: ... here.
	* include/experimental/map: Move erase_if.h.
	* include/experimental/set: Move erase_if.h.
	* include/experimental/unordered_map: Move erase_if.h.
	* include/experimental/unordered_set: Move erase_if.h.
	* include/std/deque (erase_if, erase): New functions.
	* include/std/forward_list: Ditto.
	* include/std/list: Ditto.
	* include/std/map: Ditto.
	* include/std/set: Ditto.
	* include/std/string: Ditto.
	* include/std/unordered_map: Ditto.
	* include/std/unordered_set: Ditto.
	* include/std/vector: Ditto.
	* testsuite/21_strings/basic_string/erasure.cc: New test.
	* testsuite/23_containers/deque/erasure.cc: New test.
	* testsuite/23_containers/forward_list/erasure.cc: New test.
	* testsuite/23_containers/list/erasure.cc: New test.
	* testsuite/23_containers/map/erasure.cc: New test.
	* testsuite/23_containers/set/erasure.cc: New test.
	* testsuite/23_containers/unordered_map/erasure.cc: New test.
	* testsuite/23_containers/unordered_set/erasure.cc: New test.
	* testsuite/23_containers/vector/erasure.cc: New test.

From-SVN: r266567
2018-11-28 16:44:25 +00:00
Jonathan Wakely
1fc9d0b0e4 Define aliases for containers using polymorphic_allocator
These aliases are placed in the top-level header, e.g. <vector> not
<bits/stl_vector.h>. This ensures that they refer to whichever of
std::vector or __debug::vector or __profile::vector is in use when the
header is included.

	* include/std/deque (std::pmr::deque): Declare alias.
	* include/std/forward_list (std::pmr::forward_list): Likewise.
	* include/std/list (std::pmr::list): Likewise.
	* include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
	* include/std/regex (std::pmr::match_results, std::pmr::cmatch)
	(std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
	* include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
	* include/std/string (std::pmr::basic_string, std::pmr::string)
	(std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
	Likewise.
	* include/std/unordered_map (std::pmr::unordered_map)
	(std::pmr::unordered_multimap): Likewise.
	* include/std/unordered_set (std::pmr::unordered_set)
	(std::pmr::unordered_multiset): Likewise.
	* include/std/vector (std::pmr::vector): Likewise.
	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
	* testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
	* testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
	* testsuite/23_containers/list/pmr_typedefs.cc: New test.
	* testsuite/23_containers/map/pmr_typedefs.cc: New test.
	* testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
	* testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
	* testsuite/23_containers/set/pmr_typedefs.cc: New test.
	* testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
	* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
	test.
	* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
	test.
	* testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
	* testsuite/23_containers/vector/pmr_typedefs.cc: New test.
	* testsuite/28_regex/match_results/pmr_typedefs.cc: New test.

From-SVN: r263456
2018-08-10 00:25:53 +01:00
Jakub Jelinek
85ec4feb11 Update copyright years.
From-SVN: r256169
2018-01-03 11:03:58 +01:00
Jakub Jelinek
cbe34bb5ed Update copyright years.
From-SVN: r243994
2017-01-01 13:07:43 +01:00
Jakub Jelinek
818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jakub Jelinek
5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Richard Sandiford
aa118a03c4 Update copyright years in libstdc++-v3/
From-SVN: r206301
2014-01-02 22:30:10 +00:00
Richard Sandiford
405feeb871 Update copyright in libstdc++-v3.
From-SVN: r195701
2013-02-03 17:54:05 +00:00
Benjamin Kosnik
ee3ee948de c++config (_GLIBCXX_EXPORT_TEMPLATE): Remove.
2011-01-21  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCXX_EXPORT_TEMPLATE): Remove.
	* include/debug/safe_sequence.h: Same.
	* include/debug/safe_iterator.h: Same.
	* include/std/forward_list: Same.
	* include/std/deque: Same.
	* include/std/list: Same.
	* include/std/random: Same.
	* include/std/streambuf: Same.
	* include/std/fstream: Same.
	* include/std/istream: Same.
	* include/std/string: Same.
	* include/std/ostream: Same.
	* include/std/sstream: Same.
	* include/ext/vstring.h: Same.
	* include/bits/basic_ios.h: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/valarray_array.h: Same.
	* include/bits/locale_facets_nonio.h: Same.
	* include/tr1/random: Same.

From-SVN: r169102
2011-01-21 19:41:13 +00:00
Jakub Jelinek
d652f226fc Update Copyright years for files modified in 2010.
From-SVN: r168438
2011-01-03 21:52:22 +01:00
Paolo Carlini
f67a9881a8 [multiple changes]
2010-07-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/vstring_util.h: Include bits/range_access.h.
	* testsuite/ext/vstring/range_access.cc: New test.

2010-07-27  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/bits/range_access.h: New.
	* include/Makefile.in: Add bits/range_access.h.
	* include/Makefile.am: Regenerate.
	* include/std/array: Include bits/range_access.h.
	* include/std/deque: Ditto.
	* include/std/forward_list: Ditto.
	* include/std/iterator: Ditto.
	* include/std/list: Ditto.
	* include/std/map: Ditto.
	* include/std/regex: Ditto.
	* include/std/set: Ditto.
	* include/std/string: Ditto.
	* include/std/unordered_map: Ditto.
	* include/std/unordered_set: Ditto.
	* include/std/vector: Ditto.
	* include/std/valarray: Add begin() and end().
	* libsupc++/initializer_list: Ditto.
	* include/tr1_impl/utility: Add begin() and end().
	* include/std/tuple: Ditto.
	* testsuite/24_iterators/headers/iterator/range_access.cc: New test.
	* testsuite/24_iterators/range_access.cc: Ditto.
	* testsuite/28_regex/range_access.cc: Ditto.
	* testsuite/18_support/initializer_list/range_access.cc: Ditto.
	* testsuite/21_strings/basic_string/range_access.cc: Ditto.
	* testsuite/26_numerics/valarray/range_access.cc: Ditto.
	* testsuite/23_containers/unordered_map/range_access.cc: Ditto.
	* testsuite/23_containers/multimap/range_access.cc: Ditto.
	* testsuite/23_containers/set/range_access.cc: Ditto.
	* testsuite/23_containers/unordered_multimap/range_access.cc: Ditto.
	* testsuite/23_containers/forward_list/range_access.cc: Ditto.
	* testsuite/23_containers/unordered_set/range_access.cc: Ditto.
	* testsuite/23_containers/vector/range_access.cc: Ditto.
	* testsuite/23_containers/deque/range_access.cc: Ditto.
	* testsuite/23_containers/multiset/range_access.cc: Ditto.
	* testsuite/23_containers/list/range_access.cc: Ditto.
	* testsuite/23_containers/unordered_multiset/range_access.cc: Ditto.
	* testsuite/23_containers/map/range_access.cc: Ditto.
	* testsuite/23_containers/array/range_access.cc: Ditto.
	* testsuite/20_util/tuple/range_access.cc: Ditto.
	* testsuite/20_util/pair/range_access.cc: Ditto.

From-SVN: r162578
2010-07-27 17:27:06 +00:00
Silvius Rus
1218d701f7 merge branch profile-stdlib
From-SVN: r152431
2009-10-03 02:17:41 +00:00
Jakub Jelinek
748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Benjamin Kosnik
af13a7a6ec acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Add c_global.
2007-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Add c_global.
	* configure.host (c_model): Set default to c_global.
	* configure: Regenerate.
	* include/Makefile.am (c_compatibility_headers_extra): Make
	conditional on GLIBCXX_C_HEADERS_COMPATIBILITY.
	(c_base_headers_extra): Make conditional on GLIBCXX_C_HEADERS_EXTRA.
	(c_compatibility_headers): Make conditional on c/c_std/c_global.
	* include/Makefile.in: Regenerate.
	* docs/html/configopts.html: Add c_global information to
	--enable-cheaders. Eventually, "c_std" should mean "C" includes
	that are in namespace std, with optional C++ "C" compatibility
	includes to inject into global scope. And "c_global" should mean
	"C" includes that are in the global namespace, with C++ includes
	injecting into namespace std and no C++ "C" compatibility
	includes.
 
2007-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config: Add _GLIBCXX_NAMEPACE_C.
	Add _GLIBCXX_NAMESPACE_ASSOCIATION_CXX200x.
	Add _GLIBCXX_TR1 as namespace macro.
	Add namespace associations for std::__cxx200x conditionally.

	* include/c_compatibility/assert.h: Correct doxygen markup,
	conditionalize the global injections on _GLIBCXX_NAMESPACE_C.
	* include/c_compatibility/ctype.h: Same.
	* include/c_compatibility/errno.h: Same.
	* include/c_compatibility/float.h: Same.
	* include/c_compatibility/iso646.h: Same.
	* include/c_compatibility/limits.h: Same.
	* include/c_compatibility/locale.h: Same.
	* include/c_compatibility/math.h: Same.
	* include/c_compatibility/setjmp.h: Same.
	* include/c_compatibility/signal.h: Same.
	* include/c_compatibility/stdarg.h: Same.
	* include/c_compatibility/stddef.h: Same.
	* include/c_compatibility/stdio.h: Same.
	* include/c_compatibility/stdlib.h: Same.
	* include/c_compatibility/string.h: Same.
	* include/c_compatibility/time.h: Same.
	* include/c_compatibility/wchar.h: Same.
	* include/c_compatibility/wctype.h: Same.

	* include/c_compatibility/complex.h: Add.
	* include/c_compatibility/fenv.h: Same.
	* include/c_compatibility/inttypes.h: Same.
	* include/c_compatibility/stdbool.h: Same.
	* include/c_compatibility/stdint.h: Same.
	* include/c_compatibility/tgmath.h: Same.

	* include/c_global/cassert: Add, use include_next, use C++0x features
	if -std=c++0x.
	* include/c_global/cctype: Same.
	* include/c_global/cerrno: Same.
	* include/c_global/cfloat: Same.
	* include/c_global/ciso646: Same.
	* include/c_global/climits: Same.
	* include/c_global/clocale: Same.
	* include/c_global/cmath: Same.
	* include/c_global/cmath.tcc: Same.
	* include/c_global/csetjmp: Same.
	* include/c_global/csignal: Same.
	* include/c_global/cstdarg: Same.
	* include/c_global/cstddef: Same.
	* include/c_global/cstdio: Same.
	* include/c_global/cstdlib: Same.
	* include/c_global/cstring: Same.
	* include/c_global/ctime: Same.
	* include/c_global/cwchar: Same.
	* include/c_global/cwctype: Same.

	* include/c_global/ccomplex: Add.
	* include/c_global/cfenv: Add.
	* include/c_global/cinttypes: Add. 
	* include/c_global/cstdbool: Add.
	* include/c_global/cstdint: Add.
	* include/c_global/ctgmath: Add.

	* include/std/algorithm: Use C++0x features if -std=c++0x.	
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/deque: Same.
	* include/std/fstream: Same.
	* include/std/functional: Same.
	* include/std/iomanip: Same.
	* include/std/ios: Same.
	* include/std/iosfwd: Same.
	* include/std/iostream: Same.
	* include/std/istream: Same.
	* include/std/iterator: Same.
	* include/std/limits: Same.
	* include/std/list: Same.
	* include/std/locale: Same.
	* include/std/map: Same.
	* include/std/memory: Same.
	* include/std/numeric: Same.
	* include/std/ostream: Same.
	* include/std/queue: Same.
	* include/std/set: Same.
	* include/std/sstream: Same.
	* include/std/stack: Same.
	* include/std/stdexcept: Same.
	* include/std/streambuf: Same.
	* include/std/string: Same.
	* include/std/utility: Same.
	* include/std/valarray: Same.
	* include/std/vector: Same.

	* include/std/array: Add.
	* include/std/random: Add.
	* include/std/regex: Add.
	* include/std/tuple: Add.
	* include/std/type_traits: Add.
	* include/std/unordered_map: Add.
	* include/std/unordered_set: Add.
	* include/std/c++0x_warning.h: Add.
	
	* include/tr1/array: Switch namespaces based on _GLIBCXX_TR1.
	* include/tr1/boost_shared_ptr.h: Same.
	* include/tr1/cctype: Same.
	* include/tr1/cfenv: Same.
	* include/tr1/cinttypes: Same.
	* include/tr1/cmath: Same.
	* include/tr1/common.h: Same.
	* include/tr1/complex: Same.
	* include/tr1/cstdint: Same.
	* include/tr1/cstdio: Same.
	* include/tr1/cstdlib: Same.
	* include/tr1/cwchar: Same.
	* include/tr1/cwctype: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_hash.h: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/math.h: Same.
	* include/tr1/memory: Same.
	* include/tr1/random: Same.
	* include/tr1/random.tcc: Same.
	* include/tr1/ref_fwd.h: Same.
	* include/tr1/repeat.h: Same.
	* include/tr1/stdlib.h: Same.
	* include/tr1/tuple: Same.
	* include/tr1/tuple_iterate.h: Same.
	* include/tr1/type_traits: Same.
	* include/tr1/type_traits_fwd.h: Same.
	* include/tr1/unordered_map: Same.
	* include/tr1/unordered_set: Same.
	* include/tr1/utility: Same.

	* include/tr1/ccomplex: Add.
	* include/tr1/complex.h: Add.
	* include/tr1/regex: Add.

	* include/Makefile.am: Add C++0x headers, "C" compatibility headers.
	* include/Makefile.in: Regenerate.

	* testsuite/tr1/headers.cc: Add in regex/complex.

	* testsuite/17_intro/headers/c++200x/all.cc: New.
	* testsuite/17_intro/headers/c++200x/all_multiple_inclusion.cc: Same.
	* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Same.
	* testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc: Same.
	* testsuite/18_support/headers/cstdint/std_c++0x_neg.cc: Same.
	* testsuite/18_support/headers/cstdint/types_std_c++0x.cc: Same.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/20_util/headers/functional/types_std_c++0x.cc: Same.
	* testsuite/20_util/headers/functional/
	using_namespace_std_placeholders.cc: Same.
	* testsuite/20_util/headers/memory/types_std_c++0x.cc: Same.
	* testsuite/20_util/headers/type_traits/std_c++0x_neg.cc: Same.
	* testsuite/20_util/headers/type_traits/types_std_c++0x.cc: Same.
	* testsuite/20_util/shared_ptr/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/20_util/weak_ptr/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/hash/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/headers/array/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/tuple/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/tuple/types_std_c++0x.cc: Same.
	* testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/tuple/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/cmath/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/random/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Same.
	* testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc: Same.
	* testsuite/27_io/headers/cinttypes/types_std_c++0x.cc: Same.
	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Same.

	* testsuite/tr1/8_c_compatibility/cfenv/types.cc: Rename ...
	* testsuite/tr1/8_c_compatibility/cinttypes/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cmath/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdint/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdlib/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc: ...to this.
	* testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Same.

From-SVN: r122533
2007-03-04 22:59:49 +00:00
Paolo Carlini
39b8cd70c2 PR libstdc++/28080 (partial)
2007-03-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/bits/stl_algobase.h: Do not include <iosfwd>,
	<bits/functexcept.h> is enough; adjust __copy_aux declarations;
	remove declaration of copy overload for istreambuf_iterator /
	ostreambuf_iterator.
	* src/debug.cc: Include <cstdio>.
	* include/ext/rope: Include <iosfwd>.
	* include/bits/char_traits.h: Include <cstdio> and <cwchar>.
	* include/bits/stl_algo.h: Remove declaration of find overload
	for istreambuf_iterator.
	* include/std/queue: Clean up includes.
	* include/std/stack: Likewise.
	* include/std/memory: Likewise.
	* include/std/algorithm: Likewise.
	* include/std/vector: Likewise.
	* include/std/deque: Likewise.
	* include/std/list: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
	dg-error markers.
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
	* testsuite/23_containers/map/operators/1_neg.cc: Likewise.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.

	* include/ext/type_traits.h: Fix type of __max_digits10; clean up
	includes.

	* testsuite/util/testsuite_hooks.h: Do not include <cstddef>.
	* testsuite/util/testsuite_hooks.cc: Do it here.

From-SVN: r122502
2007-03-03 10:29:14 +00:00
Benjamin Kosnik
1815473082 Makefile.am (std_headers_rename): Remove.
2006-12-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (std_headers_rename): Remove.
	(c_base_headers_rename): Remove.
	(std_headers): Adjust to true names.
	(c_base_headers): Adjust to true names.
	(stamp-c_base, stamp_std, stamp_c_base_extra): Adjust.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.

        * include/std/std_algorithm.h: To...
        * include/std/std_bitset.h: To...
        * include/std/std_complex.h: To...
        * include/std/std_deque.h: To...
        * include/std/std_fstream.h: To...
        * include/std/std_functional.h: To...
        * include/std/std_iomanip.h: To...
        * include/std/std_iosfwd.h: To...
        * include/std/std_ios.h: To...
        * include/std/std_iostream.h: To...
        * include/std/std_istream.h: To...
        * include/std/std_iterator.h: To...
        * include/std/std_limits.h: To...
        * include/std/std_list.h: To...
        * include/std/std_locale.h: To...
        * include/std/std_map.h: To...
        * include/std/std_memory.h: To...
        * include/std/std_numeric.h: To...
        * include/std/std_ostream.h: To...
        * include/std/std_queue.h: To...
        * include/std/std_set.h: To...
        * include/std/std_sstream.h: To...
        * include/std/std_stack.h: To...
        * include/std/std_stdexcept.h: To...
        * include/std/std_streambuf.h: To...
        * include/std/std_string.h: To...
        * include/std/std_utility.h: To...
        * include/std/std_valarray.h: To...
        * include/std/std_vector.h: To...
        * include/std/algorithm: ...this.
        * include/std/bitset: ...this.
        * include/std/complex: ...this.
        * include/std/deque: ...this.
        * include/std/fstream: ...this.
        * include/std/functional: ...this.
        * include/std/iomanip: ...this.
        * include/std/iosfwd: ...this.
        * include/std/ios: ...this.
        * include/std/iostream: ...this.
        * include/std/istream: ...this.
        * include/std/iterator: ...this.
        * include/std/limits: ...this.
        * include/std/list: ...this.
        * include/std/locale: ...this.
        * include/std/map: ...this.
        * include/std/memory: ...this.
        * include/std/numeric: ...this.
        * include/std/ostream: ...this.
        * include/std/queue: ...this.
        * include/std/set: ...this.
        * include/std/sstream: ...this.
        * include/std/stack: ...this.
        * include/std/stdexcept: ...this.
        * include/std/streambuf: ...this.
        * include/std/string: ...this.
        * include/std/utility: ...this.
        * include/std/valarray: ...this.
        * include/std/vector: ...this.

        * include/c_std/std_cassert.h: To...
        * include/c_std/std_cctype.h: To...
        * include/c_std/std_cerrno.h: To...
        * include/c_std/std_cfloat.h: To...
        * include/c_std/std_ciso646.h: To...
        * include/c_std/std_climits.h: To...
        * include/c_std/std_clocale.h: To...
        * include/c_std/std_cmath.h: To...
        * include/c_std/std_csetjmp.h: To...
        * include/c_std/std_csignal.h: To...
        * include/c_std/std_cstdarg.h: To...
        * include/c_std/std_cstddef.h: To...
        * include/c_std/std_cstdio.h: To...
        * include/c_std/std_cstdlib.h: To...
        * include/c_std/std_cstring.h: To...
        * include/c_std/std_ctime.h: To...
        * include/c_std/std_cwchar.h: To...
        * include/c_std/std_cwctype.h: To...
        * include/c_std/cassert: ...this.
        * include/c_std/cctype: ...this.
        * include/c_std/cerrno: ...this.
        * include/c_std/cfloat: ...this.
        * include/c_std/ciso646: ...this.
        * include/c_std/climits: ...this.
        * include/c_std/clocale: ...this.
        * include/c_std/cmath: ...this.
        * include/c_std/csetjmp: ...this.
        * include/c_std/csignal: ...this.
        * include/c_std/cstdarg: ...this.
        * include/c_std/cstddef: ...this.
        * include/c_std/cstdio: ...this.
        * include/c_std/cstdlib: ...this.
        * include/c_std/cstring: ...this.
        * include/c_std/ctime: ...this.
        * include/c_std/cwchar: ...this.
        * include/c_std/cwctype: ...this.

        * include/c/std_cassert.h: To...
        * include/c/std_cctype.h: To...
        * include/c/std_cerrno.h: To...
        * include/c/std_cfloat.h: To...
        * include/c/std_ciso646.h: To...
        * include/c/std_climits.h: To...
        * include/c/std_clocale.h: To...
        * include/c/std_cmath.h: To...
        * include/c/std_csetjmp.h: To...
        * include/c/std_csignal.h: To...
        * include/c/std_cstdarg.h: To...
        * include/c/std_cstddef.h: To...
        * include/c/std_cstdio.h: To...
        * include/c/std_cstdlib.h: To...
        * include/c/std_cstring.h: To...
        * include/c/std_ctime.h: To...
        * include/c/std_cwchar.h: To...
        * include/c/std_cwctype.h: To...
        * include/c/cassert: ...this.
        * include/c/cctype: ...this.
        * include/c/cerrno: ...this.
        * include/c/cfloat: ...this.
        * include/c/ciso646: ...this.
        * include/c/climits: ...this.
        * include/c/clocale: ...this.
        * include/c/cmath: ...this.
        * include/c/csetjmp: ...this.
        * include/c/csignal: ...this.
        * include/c/cstdarg: ...this.
        * include/c/cstddef: ...this.
        * include/c/cstdio: ...this.
        * include/c/cstdlib: ...this.
        * include/c/cstring: ...this.
        * include/c/ctime: ...this.
        * include/c/cwchar: ...this.
        * include/c/cwctype: ...this.

From-SVN: r119611
2006-12-07 09:35:57 +00:00
Phil Edwards
066930bbe1 Makefile.am (std_headers): Update list with new names.
2002-01-11  Phil Edwards  <pme@gcc.gnu.org>

	* include/Makefile.am (std_headers):  Update list with new names.
	(stamp-std):  Link to standardized name.
	* include/Makefile.in:  Regenerate.

	* include/std/algorithm, include/std/bitset, include/std/complex,
	include/std/deque, include/std/fstream, include/std/functional,
	include/std/iomanip, include/std/ios, include/std/iosfwd,
	include/std/iostream, include/std/istream, include/std/iterator,
	include/std/limits, include/std/list, include/std/locale,
	include/std/map, include/std/memory, include/std/numeric,
	include/std/ostream, include/std/queue, include/std/set,
	include/std/sstream, include/std/stack, include/std/stdexcept,
	include/std/streambuf, include/std/string, include/std/utility,
	include/std/valarray, include/std/vector:  Rename to...

	* include/std/std_algorithm.h, include/std/std_bitset.h,
	include/std/std_complex.h, include/std/std_deque.h,
	include/std/std_fstream.h, include/std/std_functional.h,
	include/std/std_iomanip.h, include/std/std_ios.h,
	include/std/std_iosfwd.h, include/std/std_iostream.h,
	include/std/std_istream.h, include/std/std_iterator.h,
	include/std/std_limits.h, include/std/std_list.h,
	include/std/std_locale.h, include/std/std_map.h,
	include/std/std_memory.h, include/std/std_numeric.h,
	include/std/std_ostream.h, include/std/std_queue.h,
	include/std/std_set.h, include/std/std_sstream.h,
	include/std/std_stack.h, include/std/std_stdexcept.h,
	include/std/std_streambuf.h, include/std/std_string.h,
	include/std/std_utility.h, include/std/std_valarray.h,
	include/std/std_vector.h:  ...this.

From-SVN: r48788
2002-01-12 00:50:04 +00:00
Benjamin Kosnik
54c1bf7801 Makefile.am (std_headers): Remove cXXX from list.
2002-01-04  Benjamin  Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (std_headers): Remove cXXX from list.
	(c_base_srcdir): No bits subdirectory.
	(c_base_builddir): Same.
	(c_base_headers): Adjust names, add ciso646.
	(bits_headers): Remove std_xxx.h headers.
	* include/Makefile.in: Regenerate.

	* include/ext/iterator: Adjust includes.
	* include/ext/ropeimpl.h: Same.
	* include/ext/stl_hash_fun.h: Same.
	* include/ext/algorithm: Same.

	* include/backward/bvector.h: Adjust includes.
	* include/backward/vector.h: Same.
	* include/backward/strstream: Same.
	* include/backward/streambuf.h: Same.
	* include/backward/stack.h: Same.
	* include/backward/set.h: Same.
	* include/backward/queue.h: Same.
	* include/backward/multiset.h: Same.
	* include/backward/multimap.h: Same.
	* include/backward/map.h: Same.
	* include/backward/list.h: Same.
	* include/backward/iterator.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/fstream.h: Same.
	* include/backward/deque.h: Same.
	* include/backward/complex.h: Same.

	* include/bits/std_algorithm.h: Move to...
	* include/std/algorithm: ...here.
	* include/bits/std_iosfwd.h, std_locale.h, std_stack.h,
	std_bitset.h, std_ios.h, std_map.h, std_stdexcept.h,
	std_complex.h, std_iostream.h, std_memory.h, std_streambuf.h,
	std_deque.h, std_istream.h, std_numeric.h, std_string.h,
	std_fstream.h, std_ostream.h, std_utility.h, std_iterator.h,
	std_queue.h, std_valarray.h, std_functional.h, std_limits.h,
	std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h:
	Same.

	* include/c_std/bits/std_cassert.h: Move to...
	* include/c_std/cassert: Here.
	* include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c_std/cmath: Adjust cmath.tcc include.
	* include/c_std/cstdlib: Adjust includes.
	* include/c_std/cwchar: Same.
	* include/c_std/ctime: Same.
	* include/c_std/cstring: Same.
	* include/c_std/cstdio: Same.
	* include/c_std/bits: Remove directory.

	* include/c/bits/std_cassert.h: Move to...
	* include/c/cassert: Here.
	* include/c/std_cctype.h, std_cerrno.h, std_cfloat.h,
	std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h,
	std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h,
	std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
	std_cwctype.h: Same.
	* include/c/bits: Remove directory.

	* include/std/cwctype: Remove.
	* include/std/cwchar: Remove.
	* include/std/ctime: Remove.
	* include/std/cstring: Remove.
	* include/std/cstdlib: Remove.
	* include/std/cstdio: Remove.
	* include/std/cstddef: Remove.
	* include/std/cstdarg: Remove.
	* include/std/csignal: Remove.
	* include/std/csetjmp: Remove.
	* include/std/cmath: Remove.
	* include/std/clocale: Remove.
	* include/std/climits: Remove.
	* include/std/ciso646: Remove.
	* include/std/cfloat: Remove.
	* include/std/cerrno: Remove.
	* include/std/cctype: Remove.
	* include/std/cassert: Remove.

	* include/bits/fpos.h: Adjust includes, removing <bits/std_xxx.h>
	files and subsituting <.xxx>
	* include/bits/valarray_array.h: Same.
	* include/bits/stl_uninitialized.h: Same.
	* include/bits/stl_alloc.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/pthread_allocimpl.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/localefwd.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/basic_file.h: Same.
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/fstream: Same.
	* include/std/functional: Same.
	* include/std/ios: Same.
	* include/std/iostream: Same.
	* include/std/ostream: Same.
	* include/std/sstream: Same.
	* include/std/streambuf: Same.
	* include/std/string: Same.
	* include/std/iterator: Same.
	* include/std/valarray: Same.

	* src/ios.cc: Adjust includes.
	* src/valarray-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/stl-inst.cc: Same.
	* src/stdexcept.cc: Same.
	* src/misc-inst.cc: Same.
	* src/localename.cc: Same.
	* src/locale-inst.cc: Same.
	* src/locale.cc: Same.
	* src/limits.cc: Same.
	* src/concept-inst.cc: Same.
	* src/complex_io.cc: Same.
	* src/codecvt.cc: Same.
	* src/bitset.cc: Same.
	* src/cmath.cc: Same.

From-SVN: r48544
2002-01-04 21:27:36 +00:00
Phil Edwards
2f9d51b858 *: Add Doxygen hooks.
2001-09-27  Phil Edwards  <pme@gcc.gnu.org>

	* include/std/*:  Add Doxygen hooks.
	* docs/doxygen/Intro.3:  New file, general intro to the man pages.
	* docs/doxygen/mainpage.doxy:  Formatting tweaks.  List our own links
	rather than using a generated index.
	* docs/doxygen/user.cfg.in:  Disable the index, enable man pages.
	* docs/doxygen/run_doxygen:  Massage the generated man pages, using...
	* docs/doxygen/stdheader.cc:  ...this new file.

From-SVN: r45850
2001-09-27 22:44:24 +00:00
Benjamin Kosnik
de96ac4681 *: Add copyright notice.
2001-06-08  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/2767
	libstdc++/2989
	libstdc++/2992
	* include/std/*: Add copyright notice.
	* include/c_std/bits/*: Use using statements instead of extern "C".
	* include/c_std/bits/std_cmath.h: Don't overload double versions
	of math functions with __buitin versions, use global version to
	prevent ambiguities. Remove define hacks.
	* include/c_std/bits/std_cwchar.h: Using declarations for "C"
	functions that have changed signatures and std::
	declarations. Remove define hacks.
	* include/c_std/bits/std_cwchar.h: Same, plus remove ambiguous
	__builtins in std::. Remove define hacks.
	* testsuite/17_intro/headers_c.cc: Add tests.
	* testsuite/17_intro/headers_c++.cc: Add test.

From-SVN: r43061
2001-06-08 23:22:26 +00:00
Benjamin Kosnik
725dc051ca include: New directory.
2000-10-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* include: New directory.
	* include/backward: New directory.
	* include/bits: New directory.
	* include/ext: New directory.
	* include/std: New directory.
	* include/*/*: Populate.

	* src/complex.cc: Adjust include of mathconf.

	* mkc++config (BASE_H): Add include.

	* src/Makefile.am: Support for topleve sources include directory.
	(INCLUDES): Add LIBMATH_INCLUDE.
	* src/Makefile.in: Regenerate.
	* math/Makefile.am (INCLUDES): Append /include.
	* math/Makefile.in: Regenerate.
	* libio/Makefile.am (INCLUDES): Add glibcpp_includedir.
	* libio/Makefile.in: Regenerate.

From-SVN: r36723
2000-10-05 11:27:02 +00:00