From: Jonathan Wakely
License
diff --git a/libstdc++-v3/doc/html/faq.html b/libstdc++-v3/doc/html/faq.html
index 77ccac1..eaabb7f 100644
--- a/libstdc++-v3/doc/html/faq.html
+++ b/libstdc++-v3/doc/html/faq.html
@@ -2,7 +2,7 @@
Libstdc++-v3 incorporates a lot of code from
- the SGI STL
+ the SGI STL
(the final merge was from
- release 3.3).
+ release 3.3).
The code in libstdc++ contains many fixes and changes compared to the
original SGI code.
@@ -814,7 +814,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/index.html b/libstdc++-v3/doc/html/index.html
index 3fd0219..30f0145 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -1,7 +1,7 @@
Short Contents
Copyright (C) 2008-2018
- FSF
+ FSF
Permission is granted to copy, distribute and/or modify this
@@ -142,7 +142,7 @@
Existing tests
C++ includes are versioned as follows:
- GCC 3.0.0: include/g++-v3 GCC 3.0.1: include/g++-v3 GCC 3.0.2: include/g++-v3 GCC 3.0.3: include/g++-v3 GCC 3.0.4: include/g++-v3 GCC 3.1.0: include/g++-v3 GCC 3.1.1: include/c++/3.1.1 GCC 3.2.0: include/c++/3.2 GCC 3.2.1: include/c++/3.2.1 GCC 3.2.2: include/c++/3.2.2 GCC 3.2.3: include/c++/3.2.3 GCC 3.3.0: include/c++/3.3 GCC 3.3.1: include/c++/3.3.1 GCC 3.3.2: include/c++/3.3.2 GCC 3.3.3: include/c++/3.3.3 GCC 3.4.x: include/c++/3.4.x GCC 4.x.y: include/c++/4.x.y GCC 5.x.0: include/c++/5.x.0
+ GCC 3.0.0: include/g++-v3 GCC 3.0.1: include/g++-v3 GCC 3.0.2: include/g++-v3 GCC 3.0.3: include/g++-v3 GCC 3.0.4: include/g++-v3 GCC 3.1.0: include/g++-v3 GCC 3.1.1: include/c++/3.1.1 GCC 3.2.0: include/c++/3.2 GCC 3.2.1: include/c++/3.2.1 GCC 3.2.2: include/c++/3.2.2 GCC 3.2.3: include/c++/3.2.3 GCC 3.3.0: include/c++/3.3 GCC 3.3.1: include/c++/3.3.1 GCC 3.3.2: include/c++/3.3.2 GCC 3.3.3: include/c++/3.3.3 GCC 3.4.x: include/c++/3.4.x GCC 4.x.y: include/c++/4.x.y GCC 5.x.0: include/c++/5.x.0 GCC 6.x.0: include/c++/6.x.0 GCC 7.x.0: include/c++/7.x.0 GCC 8.x.0: include/c++/8.x.0
Taken together, these techniques can accurately specify interface
and implementation changes in the GNU C++ tools themselves. Used
properly, they allow both the GNU C++ tools implementation, and
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 3745fdc..e2d3c62 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -263,18 +263,21 @@ now defaults to zero.
New --enable-libstdcxx-verbose configure option
The --enable-libstdcxx-time configure option becomes unnecessary given a
sufficiently recent glibc.
- Implementation of C++14 library and TS implementations are added. Implementation of C++14 library and TS implementations are added.
ABI transition adds new implementations of several components, using the
Use of the new or old ABI can be selected per-translation unit with the
- _GLIBCXX_USE_CXX11_ABI macro.
+ Macros.
New non-reference-counted
New
+ New
C++11 support completed (movable iostreams, new I/O manipulators,
Unicode conversion utilities, atomic operations for
@@ -290,4 +293,67 @@ now defaults to zero.
C++14 support completed.
+ Support for mathematical special functions (ISO/IEC 29124:2010) added.
+
+ Assertions to check function preconditions can be enabled by defining the
+ Macros.
+ The initial set of assertions are a subset of the checks enabled by
+ the Debug Mode, but without the ABI changes and changes to algorithmic
+ complexity that are caused by enabling the full Debug Mode.
+
+ The type of exception thrown by iostreams changed to the
+ Experimental C++17 support added, including most new library features.
+ The meaning of
+ Macros added.
+
+ Profile Mode was deprecated.
+ The exceptions thrown by iostreams can now be caught by handlers for either
+ version of
+ Experimental implementation of the C++17 Filesystem library added.
+
+ AddressSanitizer annotations added to
+
+ The extension allowing arithmetic on
+
+ The
+ The nested typedefs std::hash::result_type and
+ std::hash::argument_type were deprecated for C++17 mode.
+
+ The deprecated iostream members ios_base::io_state,
+ ios_base::open_mode, ios_base::seek_dir, and
+
+ The non-standard C++0x
+ For
+ For the non-default
-[Note: We now maintain a web page
+[Note: We now maintain a web page
that lists free books available from other publishers].
Copyright © 2004, 2005, 2006, 2007 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Verbatim copying and distribution of this entire article are
permitted worldwide, without royalty, in any medium, provided this
diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html
index b3ee651..15209b3 100644
--- a/libstdc++-v3/doc/html/manual/appendix_porting.html
+++ b/libstdc++-v3/doc/html/manual/appendix_porting.html
@@ -14,7 +14,7 @@
Existing tests
Table of Contents
Yes it is, at least using the Dual ABI, and that's okay. This is a decision that we preserved
when we imported SGI's STL implementation. The following is
- quoted from their FAQ:
+ quoted from their FAQ:
The size() member function, for list and slist, takes time
proportional to the number of elements in the list. This was a
diff --git a/libstdc++-v3/doc/html/manual/debug_mode_design.html b/libstdc++-v3/doc/html/manual/debug_mode_design.html
index e24109f..671e8db 100644
--- a/libstdc++-v3/doc/html/manual/debug_mode_design.html
+++ b/libstdc++-v3/doc/html/manual/debug_mode_design.html
@@ -391,7 +391,7 @@ test02()
Hewlett-Packard STL. Though it inspired much work in this area, it
has not been kept up-to-date for use with modern compilers or C++
standard library implementations. STLport: STLport is a free
- implementation of the C++ standard library derived from the SGI implementation, and
+ implementation of the C++ standard library derived from the SGI implementation, and
ported to many other platforms. It includes a debug mode that uses a
wrapper model (that in some ways inspired the libstdc++ debug mode
design), although at the time of this writing the debug mode is
diff --git a/libstdc++-v3/doc/html/manual/documentation_hacking.html b/libstdc++-v3/doc/html/manual/documentation_hacking.html
index 274cdac..ec60d5e 100644
--- a/libstdc++-v3/doc/html/manual/documentation_hacking.html
+++ b/libstdc++-v3/doc/html/manual/documentation_hacking.html
@@ -527,7 +527,7 @@ make
Complete details on Docbook markup can be found in the
- DocBook Element Reference.
+ DocBook Element Reference.
An incomplete reference for HTML to Docbook conversion is
detailed in the table below.
Table B.4. HTML to Docbook XML Markup Comparison The Each of the associative containers map, multimap, set, and multiset
have a counterpart which uses a
- hashing
+ hashing
function to do the arranging, instead of a strict weak ordering
function. The classes take as one of their template parameters a
function object that will return the hash value; by default, an
instantiation of
- hash.
+ hash.
You should specialize this functor for your class, or define your own,
before trying to use one of the hashing classes.
The hashing classes support all the usual associative container
diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html
index ec39379..b1a5103 100644
--- a/libstdc++-v3/doc/html/manual/index.html
+++ b/libstdc++-v3/doc/html/manual/index.html
@@ -1,6 +1,6 @@
- Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
- FSF
+ Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
+ FSF
Table of Contents [biblio.sgi_stl]
-
+
Standard Template Library Programmer's Guide
. (Thanks to James Kanze for assistance and suggestions on all of this.)
Another common operation is trimming off excess whitespace. Much
like transformations, this task is trivial with the use of string's
diff --git a/libstdc++-v3/doc/html/manual/test.html b/libstdc++-v3/doc/html/manual/test.html
index aed5a32..8edc4fa 100644
--- a/libstdc++-v3/doc/html/manual/test.html
+++ b/libstdc++-v3/doc/html/manual/test.html
@@ -392,15 +392,23 @@ cat 27_io/objects/char/3_xin.in | a.out
+ Prior to GCC 7.1,
+ This is no longer needed, and should not be added to new tests.
The testsuite uses the DejaGnu framework to compile and run the tests.
Test cases are normal C++ files which contain special directives in
diff --git a/libstdc++-v3/doc/html/manual/using_concurrency.html b/libstdc++-v3/doc/html/manual/using_concurrency.html
index 62d0a0b..436be0e 100644
--- a/libstdc++-v3/doc/html/manual/using_concurrency.html
+++ b/libstdc++-v3/doc/html/manual/using_concurrency.html
@@ -40,7 +40,7 @@ The standard places requirements on the library to ensure that no data
races are caused by the library itself or by programs which use the
library correctly (as described below).
The C++11 memory model and library requirements are a more formal version
-of the SGI STL definition of thread safety, which the library used
+of the SGI STL definition of thread safety, which the library used
prior to the 2011 standard.
The library strives to be thread-safe when all of the following
conditions are met:
@@ -233,10 +233,10 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
threaded and non-threaded code), see Chapter 17.
Two excellent pages to read when working with the Standard C++
containers and threads are
- SGI's
- http://www.sgi.com/tech/stl/thread_safety.html and
- SGI's
- http://www.sgi.com/tech/stl/Allocators.html.
+ SGI's
+ https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/thread_safety.html and
+ SGI's
+ https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/Allocators.html.
However, please ignore all discussions about the user-level
configuration of the lock implementation inside the STL
container-memory allocator on those pages. For the sake of this
diff --git a/libstdc++-v3/doc/html/manual/utilities.html b/libstdc++-v3/doc/html/manual/utilities.html
index 3f8fadb..15c9a9d 100644
--- a/libstdc++-v3/doc/html/manual/utilities.html
+++ b/libstdc++-v3/doc/html/manual/utilities.html
@@ -11,6 +11,6 @@
get slightly the wrong idea. In the interest of not reinventing
the wheel, we will refer you to the introduction to the functor
concept written by SGI as part of their STL, in
- their
- http://www.sgi.com/tech/stl/functors.html.
+ their
+ https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/functors.html.
std::thread
.
std::
not supportedisspace
from <cctype>
is a macro
vector::at
, deque::at
, string::at
std::char_traits<char>::eof
string::clear
ostream::form
and istream::scan
extensions
diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html
index d9dc9ad..16723de 100644
--- a/libstdc++-v3/doc/html/manual/abi.html
+++ b/libstdc++-v3/doc/html/manual/abi.html
@@ -226,7 +226,7 @@ compatible.
file's macro GLIBCXX_CONFIGURE (GLIBCPP_CONFIGURE before GCC 3.4.0).
regex
completed. copy_exception
deprecated. __gnu_cxx::array_allocator
deprecated. regex
completed. copy_exception
deprecated. __gnu_cxx::array_allocator
deprecated. abi_tag
attribute and the __cxx11
inline
namespace to distinguish the new entities from the old ones.
string
implementation.
list
implementation containing a new
data member in order to provide O(1) size()
.
+ ios_base::failure
implementation inheriting
+ from system_error
.
has_trivial_default_constructor
,
has_trivial_copy_constructor
and
has_trivial_copy_assign
deprecated.
+cxx11
+ ABI version of std::ios_base::failure
.
+shared_ptr<T[]>
changed to
+ match the C++17 semantics.
+has_trivial_default_constructor
,
+ has_trivial_copy_constructor
and
+ has_trivial_copy_assign
removed.
+std::ios_base::failure
.
+std::vector
+ to detect out-of-range accesses to the unused capacity of a vector.
+std::char_traits<char16_t>::to_int_type(u'\uFFFF')
+ now returns 0xFFFD
, as 0xFFFF
is
+ used for std::char_traits<char16_t>::eof()
.
+std::atomic<void*>
and types like
+ std::atomic<R(*)()>
was deprecated.
+std::uncaught_exception
function was deprecated
+ for C++17 mode.
+basic_streambuf::stossc
were removed for C++17 mode.
+std::copy_exception
function
+ was removed.
+-std=c++11
, -std=c++14
, and
+ -std=c++17
modes the <complex.h>
+ header no longer includes the C99 <complex.h>
+ header.
+--enable-symvers=gnu-versioned-namespace
+ configuration, the shared library SONAME has been changed to
+ libstdc++.so.8
.
std::
not supportedisspace
from <cctype>
is a macro
vector::at
, deque::at
, string::at
std::char_traits<char>::eof
string::clear
ostream::form
and istream::scan
extensions
diff --git a/libstdc++-v3/doc/html/manual/appendix_free.html b/libstdc++-v3/doc/html/manual/appendix_free.html
index f7d0e5e..b10283f 100644
--- a/libstdc++-v3/doc/html/manual/appendix_free.html
+++ b/libstdc++-v3/doc/html/manual/appendix_free.html
@@ -116,7 +116,7 @@ manuals instead of proprietary ones. One way you can help this is to
check the distribution terms of a manual before you buy it, and
prefer copylefted manuals to non-copylefted ones.
std::
not supportedisspace
from <cctype>
is a macro
vector::at
, deque::at
, string::at
std::char_traits<char>::eof
string::clear
ostream::form
and istream::scan
extensions
diff --git a/libstdc++-v3/doc/html/manual/backwards.html b/libstdc++-v3/doc/html/manual/backwards.html
index 31cbe01..2758f34 100644
--- a/libstdc++-v3/doc/html/manual/backwards.html
+++ b/libstdc++-v3/doc/html/manual/backwards.html
@@ -331,7 +331,7 @@ particular âinfo iostreamâsame
+ library (not a general program). We currently use the same
definition that SGI uses for their STL subset. However,
the exception for read-only containers only applies to the STL
components. This definition is widely-used and something similar
diff --git a/libstdc++-v3/doc/html/manual/containers.html b/libstdc++-v3/doc/html/manual/containers.html
index a30aef2..e4030c4 100644
--- a/libstdc++-v3/doc/html/manual/containers.html
+++ b/libstdc++-v3/doc/html/manual/containers.html
@@ -10,7 +10,7 @@
XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwal
      </set>
    HTML Docbook <p> <para> <pre> <computeroutput>, <programlisting>,
diff --git a/libstdc++-v3/doc/html/manual/ext_numerics.html b/libstdc++-v3/doc/html/manual/ext_numerics.html
index 4689c95..57b14ee 100644
--- a/libstdc++-v3/doc/html/manual/ext_numerics.html
+++ b/libstdc++-v3/doc/html/manual/ext_numerics.html
@@ -14,7 +14,7 @@
The operation functor must be associative.
iota
function wins the award for Extension With the
Coolest Name (the name comes from Ken Iverson's APL language.) As
- described in the SGI
+ described in the SGI
documentation, it "assigns sequentially increasing values to a range.
That is, it assigns value
to *first
,
value + 1
to *(first + 1)
and so on."
diff --git a/libstdc++-v3/doc/html/manual/ext_sgi.html b/libstdc++-v3/doc/html/manual/ext_sgi.html
index d201341..da0f85f 100644
--- a/libstdc++-v3/doc/html/manual/ext_sgi.html
+++ b/libstdc++-v3/doc/html/manual/ext_sgi.html
@@ -28,12 +28,12 @@
and sets.
std::
not supportedisspace
from <cctype>
is a macro
vector::at
, deque::at
, string::at
std::char_traits<char>::eof
string::clear
ostream::form
and istream::scan
extensions
diff --git a/libstdc++-v3/doc/html/manual/license.html b/libstdc++-v3/doc/html/manual/license.html
index c1d708a..e10808a 100644
--- a/libstdc++-v3/doc/html/manual/license.html
+++ b/libstdc++-v3/doc/html/manual/license.html
@@ -15,7 +15,7 @@ GCCÂ RUNTIMEÂ LIBRARYÂ EXCEPTION
Version 3.1, 31 March 2009
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
diff --git a/libstdc++-v3/doc/html/manual/policy_data_structures.html b/libstdc++-v3/doc/html/manual/policy_data_structures.html
index 8b2b87d..682f7d3 100644
--- a/libstdc++-v3/doc/html/manual/policy_data_structures.html
+++ b/libstdc++-v3/doc/html/manual/policy_data_structures.html
@@ -1213,7 +1213,7 @@
.
In Workshop on ML
.
char toLower (char c)
{
- return std::tolower(c);
+ // std::tolower(c) is undefined if c < 0 so cast to unsigned char.
+ return std::tolower((unsigned char)c);
}
VERIFY
macro, defined in the
<testsuite_hooks.h>
header.
- This usually expands to the standard assert
macro, but
- allows targets to define it to something different. In order to support
- the alternative expansions of VERIFY
, before any
- use of the macro there must be a variable called test
- in scope, which is usually defined like so (the attribute avoids
+ This expands to a custom assertion using
+ __builtin_printf
and
+ __builtin_abort
+ (to avoid using assert
and being affected by
+ NDEBUG
).
+ VERIFY
was defined differently.
+ It usually expanded to the standard assert
macro, but
+ allowed targets to define it to something different. In order to support
+ the alternative expansions of VERIFY
, before any use
+ of the macro there needed to be a variable called test
+ in scope, which was usually defined like so (the attribute avoids
warnings about an unused variable):
bool test __attribute__((unused)) = true;
cxx11
+ ABI version of