https://gcc.gnu.org/g:ae8a08ff59d28b17489d5c454bc07bfb70f0dff9 commit ae8a08ff59d28b17489d5c454bc07bfb70f0dff9 Author: Jonathan Wakely Date: Mon May 4 22:54:25 2020 +0100 libstdc++: Fix broken link to SGI STL FAQ The previous URL to an entry in the wayback machine now redirects to a page saying "SGI.com Tech Archive Resources now retired" so use an older entry from the archive. * doc/xml/faq.xml: Use working link for SGI STL FAQ. * doc/html/*: Regenerate. Diff: --- libstdc++-v3/ChangeLog | 3 + libstdc++-v3/doc/html/faq.html | 26 +-- libstdc++-v3/doc/html/manual/status.html | 280 +++++++++++++++---------------- libstdc++-v3/doc/xml/faq.xml | 118 ++++++------- 4 files changed, 215 insertions(+), 212 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 9cc811c884f..a011ec5f45a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2020-05-04 Jonathan Wakely + * doc/xml/faq.xml: Use working link for SGI STL FAQ. + * doc/html/*: Regenerate. + PR libstdc++/94906 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk::release): Use size_t for shift diff --git a/libstdc++-v3/doc/html/faq.html b/libstdc++-v3/doc/html/faq.html index ac99835acf2..18407225d7a 100644 --- a/libstdc++-v3/doc/html/faq.html +++ b/libstdc++-v3/doc/html/faq.html @@ -194,7 +194,7 @@ information is available on the homepage (including how to browse the list archives); to send a message to the list, use . -

+

If you have a question that you think should be included here, or if you have a question about a question/answer here, please send email to the libstdc++ mailing list, as above. @@ -246,8 +246,8 @@ development tools. It may be necessary to install extra development packages to get the headers, or the documentation, or the source: please consult your vendor for details. -

- To build and install from the GNU GCC sources, please consult the +

+ To build and install from the GNU GCC sources, please consult the setup documentation for detailed instructions. You may wish to browse those files ahead @@ -268,7 +268,7 @@

Libstdc++ comes with its own validation testsuite, which includes conformance testing, regression testing, ABI testing, and - performance testing. Please consult the + performance testing. Please consult the testing documentation for GCC and Testing in the libstdc++ @@ -424,12 +424,12 @@

Note

This answer is old and probably no longer be relevant.

By default we try to support the C99 long long type. This requires that certain functions from your C library be present. -

+

Up through release 3.0.2 the platform-specific tests performed by libstdc++ were too general, resulting in a conservative approach to enabling the long long code paths. The most commonly reported platform affected was Solaris. -

+

This has been fixed for libstdc++ releases greater than 3.0.3.

4.3.

_XOPEN_SOURCE and _GNU_SOURCE are always defined? @@ -484,7 +484,7 @@ and later. A patch went in just after the 3.3 release to make mips* use the generic implementation instead. You can also configure for mipsel-elf as a workaround. -

+

The mips*-*-linux* port continues to use the MIPS II routines, and more work in this area is expected.

4.7.

@@ -510,7 +510,7 @@ enable wchar_t and C++ library structures like wstring were present. This impacted Solaris, Darwin, and BSD variants, and is fixed in libstdc++ versions post 4.1.0. -

+

5.1. What works already?
5.2. @@ -526,8 +526,8 @@ platforms. Also dependent on the underlying platform is support for wchar_t and long long specializations, and details of thread support. -

- Long answer: See the implementation status pages for +

+ Long answer: See the implementation status pages for C++98, TR1, C++11, @@ -536,7 +536,7 @@

5.2.

Bugs in the ISO C++ language or library specification

- Unfortunately, there are some. + Unfortunately, there are some.

For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first @@ -560,7 +560,7 @@ or an older version of the GNU compilers. Third, you can find more information on the libstdc++ and the GCC mailing lists: search these lists with terms describing your issue. -

+

Before reporting a bug, please examine the bugs database, with the component set to c++. @@ -813,7 +813,7 @@ and backwards compatibility documentation.

- The FAQ + The FAQ for SGI's STL is still recommended reading.

7.4.

Extensions and Backward Compatibility diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index b2716d05865..a16fddd6136 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1107,435 +1107,435 @@ The "SD-6 Feature Test / Notes" column shows the corresponding macro or header f Feature-testing recommendations for C++ (where applicable) or any notes about the implementation.

Table 1.8. C++ 2020 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
- Compile-time programming + Compile-time programming
Add constexpr modifiers to functions in <algorithm> and <utility> Headers - P0202R3 + P0202R3 10.1 __cpp_lib_constexpr_algorithms >= 201703L
Constexpr for swap and swap related functions - P0879R0 + P0879R0 10.1 __cpp_lib_constexpr_algorithms >= 201806L
Constexpr for std::complex - P0415R1 + P0415R1 9.1 __cpp_lib_constexpr_complex >= 201711L (since 9.4, see Note 1)
P0595R2 std::is_constant_evaluated() - P0595R2 + P0595R2 9.1 __cpp_lib_is_constant_evaluated >= 201811L
More constexpr containers - P0784R7 + P0784R7 10.1 __cpp_lib_constexpr_dynamic_alloc >= 201907L
Making std::string constexpr - P0980R1 + P0980R1   __cpp_lib_constexpr_string >= 201907L
Making std::vector constexpr - P1004R2 + P1004R2   __cpp_lib_constexpr_vector >= 201907L
Constexpr in std::pointer_traits - P1006R1 + P1006R1 9.1 __cpp_lib_constexpr_memory >= 201811L (since 9.4, see Note 1)
constexpr for <numeric> algorithms - P1645R1 + P1645R1 10.1 __cpp_lib_constexpr_numeric >= 201911L
Constexpr iterator requirements - P0858R0 + P0858R0 9.1 -
__cpp_lib_array_constexpr >= 201803L
__cpp_lib_string_view >= 201803L
(both since 9.4, see Note 1)
-
constexpr comparison operators for std::array +
__cpp_lib_array_constexpr >= 201803L
__cpp_lib_string_view >= 201803L
(both since 9.4, see Note 1)
+
constexpr comparison operators for std::array - P1023R0 + P1023R0 10.1 __cpp_lib_array_constexpr >= 201806
Misc constexpr bits - P1032R1 + P1032R1 10.1 -
__cpp_lib_array_constexpr >= 201811L
__cpp_lib_constexpr_functional >= 201811L
__cpp_lib_constexpr_iterator >= 201811L
__cpp_lib_constexpr_string_view >= 201811L
__cpp_lib_constexpr_tuple >= 201811L
__cpp_lib_constexpr_utility >= 201811L
-
constexpr INVOKE +
__cpp_lib_array_constexpr >= 201811L
__cpp_lib_constexpr_functional >= 201811L
__cpp_lib_constexpr_iterator >= 201811L
__cpp_lib_constexpr_string_view >= 201811L
__cpp_lib_constexpr_tuple >= 201811L
__cpp_lib_constexpr_utility >= 201811L
+
constexpr INVOKE - P1065R2 + P1065R2 10.1 __cpp_lib_constexpr_functional >= 201907L
Transformation Trait remove_cvref - P0550R2 + P0550R2 9.1 __cpp_lib_remove_cvref >= 201711L (since 9.4, see Note 1)
Implicit conversion traits and utility functions - P0758R1 + P0758R1 9.1 __cpp_lib_is_nothrow_convertible >= 201806L (since 9.4, see Note 1)
The identity metafunction - P0887R1 + P0887R1 9.1 __cpp_lib_type_identity >= 201806L (since 9.4, see Note 1)
unwrap_ref_decay and unwrap_reference - P0318R1 + P0318R1 9.1 __cpp_lib_unwrap_ref >= 201811L (since 9.4, see Note 1)
Improving Completeness Requirements for Type Traits - P1285R0 + P1285R0 Partial  
Missing feature test macros - P1353R0 + P1353R0 9.1  
Making std::underlying_type SFINAE-friendly - P0340R3 + P0340R3 9.1  
Traits for [Un]bounded Arrays - P1357R1 + P1357R1 9.1 __cpp_lib_bounded_array_traits >= 201902L
Layout-compatibility and pointer-interconvertibility traits - P0466R5 + P0466R5 -
__cpp_lib_is_layout_compatible >= 201907L
__cpp_lib_is_pointer_interconvertible >= 201907L
+
__cpp_lib_is_layout_compatible >= 201907L
__cpp_lib_is_pointer_interconvertible >= 201907L
Integrating feature-test macros into the C++ WD - P0941R2 + P0941R2 5.1  
<version> - P0754R2 + P0754R2 9.1 __has_include(<version>)
- Synchronization + Synchronization
Atomic Ref - P0019R8 + P0019R8 10.1 __cpp_lib_atomic_ref >= 201806L
Floating Point Atomic - P0020R6 + P0020R6 10.1 __cpp_lib_atomic_float >= 201711L
C++ Synchronized Buffered Ostream - P0053R7 + P0053R7 __cpp_lib_syncbuf >= 201711L
Manipulators for C++ Synchronized Buffered Ostream - P0753R2 + P0753R2 __cpp_lib_syncbuf >= 201803L
Make std::memory_order a scoped enumeration - P0439R0 + P0439R0 9.1  
The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange - P0528R3 + P0528R3  
Atomic shared_ptr - P0718R2 + P0718R2 __cpp_lib_atomic_shared_ptr >= 201711L
std::stop_token and std::jthread - P0660R10 + P0660R10 10.1 __cpp_lib_jthread >= 201907L
Rename condition_variable_any interruptible wait methods - P1869R1 + P1869R1 10.1 __cpp_lib_jthread >= 201911L
Atomic waiting and notifying, std::semaphore, std::latch and std::barrier - P1135R6 + P1135R6 -
__cpp_lib_atomic_lock_free_type_aliases >= 201907L
__cpp_lib_atomic_flag_test >= 201907L
__cpp_lib_atomic_wait >= 201907L
__cpp_lib_semaphore >= 201907L
__cpp_lib_latch >= 201907L
__cpp_lib_barrier >= 201907L
+
__cpp_lib_atomic_lock_free_type_aliases >= 201907L
__cpp_lib_atomic_flag_test >= 201907L
__cpp_lib_atomic_wait >= 201907L
__cpp_lib_semaphore >= 201907L
__cpp_lib_latch >= 201907L
__cpp_lib_barrier >= 201907L
Fixing Atomic Initialization - P0883R2 + P0883R2 10.1 __cpp_lib_atomic_value_initialization >= 201911L
- Ranges and Concepts + Ranges and Concepts
Standard Library Concepts - P0898R3 + P0898R3 10.1 __cpp_lib_concepts >= 201806L
Rename concepts to standard_case for C++20, while we still can - P1754R1 + P1754R1 10.1 __cpp_lib_concepts >= 201907L
Wording for boolean-testable - P1964R2 + P1964R2 10.1 __cpp_lib_concepts >= 202002L
The One Ranges Proposal - P0896R4 + P0896R4 10.1 __cpp_lib_ranges >= 201811L
Input Range Adaptors - P1035R7 + P1035R7 10.1 __cpp_lib_ranges >= 201907L
ranges compare algorithm are over-constrained - P1716R3 + P1716R3 10.1 __cpp_lib_ranges >= 201911L
Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations) - P1248R1 + P1248R1 10.1  
Ranges Design Cleanup - P1252R2 + P1252R2 10.1  
- Time, dates, calendars, time zones + Time, dates, calendars, time zones
Extending chrono to Calendars and Time Zones - P0355R7 + P0355R7   __cpp_lib_chrono >= 201803L
Miscellaneous minor fixes for chrono - P1466R3 + P1466R3   __cpp_lib_chrono >= 201907L
<chrono> zero(), min(), and max() should be noexcept - P0972R0 + P0972R0 9.1  
- Three-way comparison + Three-way comparison
Library Support for the Spaceship (Comparison) Operator - P0768R1 + P0768R1 10.1 __cpp_lib_three_way_comparison >= 201711L
Symmetry for spaceship - P0905R1 + P0905R1 10.1  
Adding <=> to the standard library - P1614R2 + P1614R2 10.1 __cpp_lib_three_way_comparison >= 201907L
- Strings and text + Strings and text
string::reserve Should Not Shrink - P0966R1 + P0966R1  
char8_t: A type for UTF-8 characters and strings - P0482R6 + P0482R6 9.1 __cpp_lib_char8_t >= 201811L
char8_t backward compatibility remediation - P1423R3 + P1423R3 10.1 __cpp_lib_char8_t >= 201907L
Text formatting - P0645R10 + P0645R10 __cpp_lib_format >= 201907L
Integration of chrono with text formatting - P1361R2 + P1361R2 __cpp_lib_format >= 201907L
Printf corner cases in std::format - P1652R1 + P1652R1 __cpp_lib_format >= 201907L
String Prefix and Suffix Checking - P0457R2 + P0457R2 9.1 __cpp_lib_starts_ends_with >= 201711L (since 9.4, see Note 1)
Update The Reference To The Unicode Standard - P1025R1 + P1025R1  
- Containers + Containers
span: bounds-safe views for sequences of objects - P0122R7 + P0122R7 10.1 __cpp_lib_span >= 201803L
Usability Enhancements for std::span - P1024R3 + P1024R3 10.1 __cpp_lib_span >= 201902L
Should Span be Regular? - P1085R2 + P1085R2 10.1  
Fixed-size <span> construction from dynamic range - P1976R2 + P1976R2 10.1 __cpp_lib_span >= 202002L
std::to_array - P0325R4 + P0325R4 10.1 __cpp_lib_to_array >= 201907L
Checking for Existence of an Element in Associative Containers - P0458R2 + P0458R2 9.1  
Comparing Unordered Containers - P0809R0 + P0809R0  
Heterogeneous lookup for unordered containers - P0919R3 + P0919R3 __cpp_lib_generic_unordered_lookup >= 201811
Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 - P1209R0 + P1209R0 9.1 __cpp_lib_erase_if >= 201811L
Improving the Return Value of Erase-Like Algorithms - P0646R1 + P0646R1 9.1 __cpp_lib_list_remove_return_type >= 201806L
Improving the Return Value of Erase-Like Algorithms II: Free erase/erase_if - P1115R3 + P1115R3 9.1 -
__cpp_lib_erase_if >= 202002L
(defined to 201900L for GCC 9.1 and 9.2 so use > 201811L)
-
Signed ssize() functions, unsigned size() functions +
__cpp_lib_erase_if >= 202002L
(defined to 201900L for GCC 9.1 and 9.2 so use > 201811L)
+
Signed ssize() functions, unsigned size() functions - P1227R2 + P1227R2 10.1 __cpp_lib_ssize >= 201902L
- Memory management + Memory management
Utility to convert a pointer to a raw pointer - P0653R2 + P0653R2 8.1 __cpp_lib_to_address >= 201711L (since 9.4, see Note 1)
Extending make_shared to Support Arrays - P0674R1 + P0674R1 __cpp_lib_shared_ptr_arrays >= 201707L
Efficient sized delete for variable sized classes - P0722R3 + P0722R3 9.1 __cpp_lib_destroying_delete >= 201806L
Utility functions to implement uses-allocator construction - P0591R4 + P0591R4 9.1 std::scoped_allocator_adaptor changes missing in 9.1.0
std::assume_aligned - P1007R3 + P1007R3 9.1 __cpp_lib_assume_aligned >= 201811L (since 9.4, see Note 1)
Smart pointer creation with default initialization - P1020R1 + P1020R1 __cpp_lib_smart_ptr_for_overwrite >= 201811L
Make stateful allocator propagation more consistent for operator+(basic_string) - P1165R1 + P1165R1 10.1  
polymorphic_allocator<> as a vocabulary type - P0339R6 + P0339R6 9.1 - __cpp_lib_polymorphic_allocator >= 201902L (since 9.4, see Note 1) -
LWG 2511: guaranteed copy elision for piecewise construction + __cpp_lib_polymorphic_allocator >= 201902L (since 9.4, see Note 1) +
LWG 2511: guaranteed copy elision for piecewise construction - P0475R1 + P0475R1 7.1  
- Miscellaneous + Miscellaneous
nodiscard in the Library - P0600R1 + P0600R1 9.1  
de-pessimize legacy algorithms with std::move - P0616R0 + P0616R0 9.1  
Deprecate POD - P0767R1 + P0767R1 10.1  
Treating Unnecessary decay - P0777R1 + P0777R1 9.1  
Thou Shalt Not Specialize std Function Templates! - P0551R3 + P0551R3  
Bit-casting object representations - P0476R2 + P0476R2 __cpp_lib_bit_cast >= 201806L
Integral power-of-2 operations - P0556R3 + P0556R3 9.1 __cpp_lib_int_pow2 >= 201806L (since 9.4, see Note 1)
On the names of low-level bit manipulation functions - P1956R1 + P1956R1 10.1 __cpp_lib_int_pow2 >= 202002L
Safe integral comparisons - P0586R2 + P0586R2 10.1 __cpp_lib_integer_comparison_functions >= 202002L
Reviewing Deprecated Facilities of C++17 for C++20 - P0619R4 + P0619R4  
fpos Requirements - P0759R1 + P0759R1  
Add shift to <algorithm> - P0769R2 + P0769R2 10.1 __cpp_lib_shift >= 201806L
Standard Library Specification in a Concepts and Contracts World - P0788R3 + P0788R3  
explicit(bool) - P0892R2 + P0892R2  
Eradicating unnecessarily explicit default constructors from the standard library - P0935R0 + P0935R0 9.1  
std::function move constructor should be noexcept - P0771R1 + P0771R1 7.2  
Simplified partial function application - P0356R5 + P0356R5 9.1 __cpp_lib_bind_front >= 201811L
bind_front should not unwrap reference_wrapper - P1651R0 + P1651R0 9.3 __cpp_lib_bind_front >= 201907L
reference_wrapper for incomplete types - P0357R3 + P0357R3 9.1  
Fixing operator>>(basic_istream&, CharT*) (LWG 2499) - P0487R1 + P0487R1  
variant and optional should propagate copy/move triviality - P0602R4 + P0602R4 8.3  
A sane variant converting constructor - P0608R3 + P0608R3 10.1  
visit<R>: Explicit Return Type for visit - P0655R1 + P0655R1 9.1  
P0899R1 - LWG 3016 is not a defect - P0899R1 + P0899R1 7.1  
Editorial Guidance for merging P0019r8 and P0528r3 - P1123R0 + P1123R0  
Cleaning up Clause 20 - P1148R0 + P1148R0  
Completing the Rebase of Library Fundamentals, Version 3, Working Draft - P1210R0 + P1210R0  
Alternative Wording for P0907R4 Signed Integers are Two's Complement - P1236R1 + P1236R1  
I Stream, You Stream, We All Stream for istream_iterator - P0738R2 + P0738R2 10.1  
Mandating the Standard Library: Clause 16 - Language support library - P1458R1 + P1458R1  
Mandating the Standard Library: Clause 18 - Diagnostics library - P1459R1 + P1459R1  
Mandating the Standard Library: Clause 20 - Strings library - P1462R1 + P1462R1  
Mandating the Standard Library: Clause 21 - Containers library - P1463R1 + P1463R1 10.1  
Mandating the Standard Library: Clause 22 - Iterators library - P1464R1 + P1464R1  
Make create_directory() Intuitive P1164R1 - + 8.3 Treated as a DR for C++17
Target Vectorization Policies from Parallelism V2 TS to C++20 - P1001R2 + P1001R2 9.1 __cpp_lib_execution >= 201902L (since 9.4, see Note 1)
Merge Coroutines TS into C++20 working draft - P0912R5 + P0912R5 10.1 __cpp_lib_coroutines >= 201902L
Endian just Endian - P0463R1 + P0463R1 8.1 __cpp_lib_endian >= 201907L
Bit operations - P0553R4 + P0553R4 10.1 __cpp_lib_bitops >= 201907L (since 9.4, see Note 1)
Well-behaved interpolation for numbers and pointers - P0811R3 + P0811R3 9.1 __cpp_lib_interpolate >= 201902L
Mathematical constants - P0631R8 + P0631R8 10.1 __cpp_lib_math_constants >= 201907L
std::source_location - P1208R6 + P1208R6 __cpp_lib_source_location >= 201907L
Efficient access to std::basic_stringbuf's Buffer - P0408R7 + P0408R7  

Note 1: This feature is supported in older releases but the __cpp_lib macro is not defined to the right value diff --git a/libstdc++-v3/doc/xml/faq.xml b/libstdc++-v3/doc/xml/faq.xml index aff6c8d6004..cf8684e1cea 100644 --- a/libstdc++-v3/doc/xml/faq.xml +++ b/libstdc++-v3/doc/xml/faq.xml @@ -2,9 +2,9 @@

- + Frequently Asked Questions - + 2008-2018 @@ -36,7 +36,7 @@ exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source can be cloned via Git. - + N.B. The library is called libstdc++ not stdlibc++. @@ -58,7 +58,7 @@ (as the Draft Standard used to say) incomplet and incorrekt, and many suffered from limitations of the compilers that used them. - + The GNU compiler collection (gcc, g++, etc) is widely @@ -68,7 +68,7 @@ the rapid development and near-legendary portability that are the hallmarks of an open-source project are applied to libstdc++. - + All of the standard classes and functions from C++98/C++03, C++11 and C++14 (such as string, @@ -100,7 +100,7 @@ archives, is open to everyone. You can read instructions for doing so on the GCC mailing lists page. If you have questions, ideas, code, or are just curious, sign up! - + @@ -115,7 +115,7 @@ Nathan Myers gave the best of all possible answers, responding to a Usenet article asking this question: Sooner, if you help. - + @@ -135,7 +135,7 @@ anybody who is willing to help write documentation, for example, or has found a bug in code that we all thought was working and is willing to provide details, is more than welcome! - + @@ -152,7 +152,7 @@ being developed. It should not be used for new projects, and won't even compile with recent releases of GCC (or most other C++ compilers). - + More information can be found in the Backwards @@ -175,13 +175,13 @@ information is available on the homepage (including how to browse the list archives); to send a message to the list, use libstdc++@gcc.gnu.org. - + - + If you have a question that you think should be included here, or if you have a question about a question/answer here, please send email to the libstdc++ mailing list, as above. - + @@ -201,7 +201,7 @@ See our license description for these and related questions. - + @@ -215,7 +215,7 @@ No. The special exception permits use of the library in proprietary applications. - + @@ -235,7 +235,7 @@ are expanded inside the code that uses the library. So to allow people to replace the library code, someone using the library would have to distribute their own source, rendering the LGPL equivalent to the GPL. - + @@ -249,7 +249,7 @@ None. We encourage such programs to be released as free software, but we won't punish you or sue you if you choose otherwise. - + @@ -271,14 +271,14 @@ development tools. It may be necessary to install extra development packages to get the headers, or the documentation, or the source: please consult your vendor for details. - - - To build and install from the GNU GCC sources, please consult the + + + To build and install from the GNU GCC sources, please consult the setup documentation for detailed instructions. You may wish to browse those files ahead of time to get a feel for what's required. - + @@ -313,12 +313,12 @@ Libstdc++ comes with its own validation testsuite, which includes conformance testing, regression testing, ABI testing, and - performance testing. Please consult the + performance testing. Please consult the testing documentation for GCC and Testing in the libstdc++ manual for more details. - + If you find bugs in the testsuite programs themselves, or if you think of a new test program that should be added to the suite, @@ -432,7 +432,7 @@ using anything from the rest of the library, such as IOStreams or vectors, then you'll still need pieces from libstdc++.a. - + @@ -465,7 +465,7 @@ is only possible to a certain extent; the object files in question contain template classes and template functions, pre-instantiated, and splitting those up causes severe maintenance headaches. - + On supported platforms, libstdc++ takes advantage of garbage collection in the GNU linker to get a result similar to separating @@ -495,12 +495,12 @@ Perhaps. - + Since the goal of ISO Standardization is for all C++ implementations to be able to share code, libstdc++ should be usable under any ISO-compliant compiler, at least in theory. - + However, the reality is that libstdc++ is targeted and optimized for GCC/G++. This means that often libstdc++ uses specific, @@ -515,7 +515,7 @@ been known to work with versions of the EDG C++ compiler, and vendor-specific proprietary C++ compilers such as the Intel ICC C++ compiler. - + @@ -533,16 +533,16 @@ By default we try to support the C99 long long type. This requires that certain functions from your C library be present. - - + + Up through release 3.0.2 the platform-specific tests performed by libstdc++ were too general, resulting in a conservative approach to enabling the long long code paths. The most commonly reported platform affected was Solaris. - - + + This has been fixed for libstdc++ releases greater than 3.0.3. - + @@ -651,10 +651,10 @@ make mips* use the generic implementation instead. You can also configure for mipsel-elf as a workaround. - + The mips*-*-linux* port continues to use the MIPS II routines, and more work in this area is expected. - + @@ -700,9 +700,9 @@ enable wchar_t and C++ library structures like wstring were present. This impacted Solaris, Darwin, and BSD variants, and is fixed in libstdc++ versions post 4.1.0. - - - + + + @@ -728,14 +728,14 @@ for wchar_t and long long specializations, and details of thread support. - - Long answer: See the implementation status pages for + + Long answer: See the implementation status pages for C++98, TR1, C++11, C++14, and C++17. - + @@ -747,7 +747,7 @@ - Unfortunately, there are some. + Unfortunately, there are some. For those people who are not part of the ISO Library Group @@ -758,7 +758,7 @@ website. Many of these issues have resulted in code changes in libstdc++. - + If you think you've discovered a new bug that is not listed, please post a message describing your problem to the author of @@ -784,12 +784,12 @@ or an older version of the GNU compilers. Third, you can find more information on the libstdc++ and the GCC mailing lists: search these lists with terms describing your issue. - - + + Before reporting a bug, please examine the bugs database, with the component set to c++. - + @@ -824,7 +824,7 @@ fs.close(); fs.open("a_new_file"); - + All operations on the re-opened fs would fail, or at least act very strangely, especially if fs reached the @@ -840,7 +840,7 @@ of DR #409 and open() now calls clear() on success. - + @@ -859,7 +859,7 @@ necessarily trying to be OO. The option also enforces outdated guidelines from old editions of the books, and the advice isn't all relevant to modern C++ (especially C++11 and later). - + We do, however, try to have libstdc++ sources as clean as possible. If you see some simple changes that pacify @@ -889,7 +889,7 @@ sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. - + @@ -947,7 +947,7 @@ checks, is available in the Diagnostics. chapter of the manual. - + @@ -1013,7 +1013,7 @@ want to test the library for memory leaks please read Tips for memory leak hunting first. - + @@ -1028,7 +1028,7 @@ See the Containers chapter. - + @@ -1056,7 +1056,7 @@ fixes. Bugs have a way of being reintroduced; if an old bug creeps back in, it will be caught immediately by the testsuite - but only if such a test exists. - + @@ -1150,9 +1150,9 @@ compatibility documentation. - The FAQ + The FAQ for SGI's STL is still recommended reading. - + @@ -1165,7 +1165,7 @@ See the link on backwards compatibility and link on evolution. - + @@ -1206,7 +1206,7 @@ Please refer to the Contributing section in our manual. - + @@ -1272,7 +1272,7 @@ so they may later be changed. Deciding which, and implementing the decisions, must happen before you can reasonably document a candidate C++ ABI that encompasses the standard library. - + @@ -1302,7 +1302,7 @@ See Shrink-to-fit strings for a similar solution for strings. - +