diff -Nrcpad gcc-4.3.0/gcc/cp/ChangeLog gcc-4.3.1/gcc/cp/ChangeLog
*** gcc-4.3.0/gcc/cp/ChangeLog Wed Mar 5 17:43:16 2008
--- gcc-4.3.1/gcc/cp/ChangeLog Fri Jun 6 14:28:48 2008
***************
*** 1,3 ****
--- 1,207 ----
+ 2008-06-06 Release Manager
+
+ * GCC 4.3.1 released.
+
+ 2008-05-27 Alexandre Oliva Here are entry points to all the pages generated by Doxygen:
!
Here are entry points to all the pages generated by Doxygen:
--- 3,11 ----
*************** viewed online: *** 29,34 **** --- 29,37 ---- for the 4.2 release
"the latest collection" (For the main development tree; see the date on the first page.) diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/faq.html gcc-4.3.1/libstdc++-v3/doc/html/faq.html *** gcc-4.3.0/libstdc++-v3/doc/html/faq.html Tue Feb 12 02:39:33 2008 --- gcc-4.3.1/libstdc++-v3/doc/html/faq.html Thu Apr 10 22:53:15 2008 *************** *** 164,170 ****
1.5.
How do I contribute to the effort?
! Here is a page devoted to this topic. Subscribing to the mailing list (see above, or the homepage) is a very good idea if you have something to contribute, or if you have spare time and want to --- 164,170 ----
1.5.
How do I contribute to the effort?
! Here is a page devoted to this topic. Subscribing to the mailing list (see above, or the homepage) is a very good idea if you have something to contribute, or if you have spare time and want to *************** *** 320,326 ****
If the only functions from libstdc++.a
which you need are language support functions (those listed in
! clause 18 of the
standard, e.g., new and
delete), then try linking against
libsupc++.a, which is a subset of
--- 320,326 ----
If the only functions from libstdc++.a
which you need are language support functions (those listed in
! clause 18 of the
standard, e.g., new and
delete), then try linking against
libsupc++.a, which is a subset of
***************
*** 487,493 ****
enough to detect when the minimal support to
enable wchar_t and C++ library structures
like wstring were present. This impacted Solaris,
! Darwin, and BSD varients, and is fixed in libstdc++ versions post 4.1.0.
fs.clear() between the calls to close() and open(),
and then everything will work like we all expect it to work.
Update: for GCC 4.0 we implemented the resolution
! of DR #409 and open() now calls
! clear() on success!
6.2.
-Weffc++ complains too much
--- 578,590 ----
reason is that the state flags are not cleared
on a successful call to open(). The standard unfortunately did
not specify behavior in this case, and to everybody's great sorrow,
! the proposed LWG resolution in
DR #22 is to leave the flags unchanged. You must insert a call
to fs.clear() between the calls to close() and open(),
and then everything will work like we all expect it to work.
Update: for GCC 4.0 we implemented the resolution
! of DR #409 and open()
! now calls clear() on success!
6.2.
-Weffc++ complains too much
*************** *** 647,653 ****
More information, including how to optionally enable/disable the checks, is available ! here.
6.6.
Program crashes when using library code in a dynamically-loaded library --- 647,653 ----
More information, including how to optionally enable/disable the checks, is available ! here.
6.6.
Program crashes when using library code in a dynamically-loaded library *************** *** 672,690 ****
A few people have reported that the standard containers appear to leak memory when tested with memory checkers such as ! valgrind. The library's default allocators keep free memory in a pool for later reuse, rather than returning it to the OS. Although this memory is always reachable by the library and is never lost, memory debugging tools can report it as a leak. If you want to test the library for memory leaks please read ! Tips for memory leak hunting first.
6.8.
list::size() is O(n)!
See ! the Containers chapter.
6.9.
Aw, that's easy to fix! --- 672,690 ----
A few people have reported that the standard containers appear to leak memory when tested with memory checkers such as ! valgrind. The library's default allocators keep free memory in a pool for later reuse, rather than returning it to the OS. Although this memory is always reachable by the library and is never lost, memory debugging tools can report it as a leak. If you want to test the library for memory leaks please read ! Tips for memory leak hunting first.
6.8.
list::size() is O(n)!
See ! the Containers chapter.
6.9.
Aw, that's easy to fix! *************** *** 695,701 **** patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the GCC patches mailing list. The libstdc++ ! contributors' page also talks about how to submit patches.
In addition to the description, the patch, and the ChangeLog --- 695,701 ---- patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the GCC patches mailing list. The libstdc++ ! contributors' page also talks about how to submit patches.
In addition to the description, the patch, and the ChangeLog *************** *** 777,783 ****
7.4.
Extensions and Backward Compatibility
! See the link on backwards compatiblity and link on evolution.
7.5.
Does libstdc++ support TR1?
--- 777,783 ----
7.4.
Extensions and Backward Compatibility
! See the link on backwards compatibility and link on evolution.
7.5.
Does libstdc++ support TR1?
*************** *** 868,873 ****
The copy will take O(n) time and the swap is constant time.
! See Shrink-to-fit strings for a similar solution for strings.
The copy will take O(n) time and the swap is constant time.
! See Shrink-to-fit strings for a similar solution for strings.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/abi.html gcc-4.3.1/libstdc++-v3/doc/html/manual/abi.html *** gcc-4.3.0/libstdc++-v3/doc/html/manual/abi.html Tue Feb 12 02:39:33 2008 --- gcc-4.3.1/libstdc++-v3/doc/html/manual/abi.html Thu Apr 10 22:53:15 2008 *************** given compiler ABI. In a nutshell: *** 54,60 **** created with the same constraints.To use a specific version of the C++ ABI, one must use a ! corresponding GNU C++ toolchain (Ie, g++ and libstdc++) that implements the C++ ABI in question.
The C++ interface has evolved throughout the history of the GNU C++ toolchain. With each release, various details have been changed so --- 54,60 ---- created with the same constraints.
To use a specific version of the C++ ABI, one must use a ! corresponding GNU C++ toolchain (i.e., g++ and libstdc++) that implements the C++ ABI in question.
The C++ interface has evolved throughout the history of the GNU C++ toolchain. With each release, various details have been changed so *************** release of the series to remain link com *** 84,90 **** others, this is libgcc_s.so.1.
Symbol versioning on the libgcc_s.so binary.
It is versioned with the following labels and version definitions, where the version definition is the maximum for a particular release. Labels are cumulative. If a particular release ! is not listed, it has the same version labels as the preceeding release.
This corresponds to the mapfile: gcc/libgcc-std.ver
gcc-3.0.0: GCC_3.0
gcc-3.3.0: GCC_3.3
gcc-3.3.1: GCC_3.3.1
gcc-3.3.2: GCC_3.3.2
gcc-3.3.4: GCC_3.3.4
gcc-3.4.0: GCC_3.4
gcc-3.4.2: GCC_3.4.2
gcc-3.4.4: GCC_3.4.4
gcc-4.0.0: GCC_4.0.0
gcc-4.1.0: GCC_4.1.0
gcc-4.2.0: GCC_4.2.0
Release versioning on the libstdc++.so binary, implemented in the same was as the libgcc_s.so binary, above.
It is versioned as follows:
gcc-3.0.0: libstdc++.so.3.0.0
gcc-3.0.1: libstdc++.so.3.0.1
gcc-3.0.2: libstdc++.so.3.0.2
gcc-3.0.3: libstdc++.so.3.0.2 (Error should be libstdc++.so.3.0.3)
gcc-3.0.4: libstdc++.so.3.0.4
gcc-3.1.0: libstdc++.so.4.0.0
gcc-3.1.1: libstdc++.so.4.0.1
gcc-3.2.0: libstdc++.so.5.0.0
gcc-3.2.1: libstdc++.so.5.0.1
gcc-3.2.2: libstdc++.so.5.0.2
gcc-3.2.3: libstdc++.so.5.0.3 (Not strictly required)
gcc-3.3.0: libstdc++.so.5.0.4
gcc-3.3.1: libstdc++.so.5.0.5
gcc-3.3.2: libstdc++.so.5.0.5
gcc-3.3.3: libstdc++.so.5.0.5
gcc-3.4.0: libstdc++.so.6.0.0
gcc-3.4.1: libstdc++.so.6.0.1
gcc-3.4.2: libstdc++.so.6.0.2
gcc-3.4.3: libstdc++.so.6.0.3
gcc-3.4.4: libstdc++.so.6.0.3
gcc-3.4.5: libstdc++.so.6.0.3
gcc-3.4.6: libstdc++.so.6.0.3
gcc-4.0.0: libstdc++.so.6.0.4
gcc-4.0.1: libstdc++.so.6.0.5
gcc-4.0.2: libstdc++.so.6.0.6
gcc-4.0.3: libstdc++.so.6.0.7
gcc-4.1.0: libstdc++.so.6.0.7
gcc-4.1.1: libstdc++.so.6.0.8
gcc-4.1.2: libstdc++.so.6.0.8
gcc-4.2.0: libstdc++.so.6.0.9
Symbol versioning on the libstdc++.so binary.
mapfile: libstdc++/config/linker-map.gnu
It is versioned with the following labels and version definitions, where the version definition is the maximum for a --- 84,90 ---- others, this is libgcc_s.so.1.
Symbol versioning on the libgcc_s.so binary.
It is versioned with the following labels and version definitions, where the version definition is the maximum for a particular release. Labels are cumulative. If a particular release ! is not listed, it has the same version labels as the preceding release.
This corresponds to the mapfile: gcc/libgcc-std.ver
gcc-3.0.0: GCC_3.0
gcc-3.3.0: GCC_3.3
gcc-3.3.1: GCC_3.3.1
gcc-3.3.2: GCC_3.3.2
gcc-3.3.4: GCC_3.3.4
gcc-3.4.0: GCC_3.4
gcc-3.4.2: GCC_3.4.2
gcc-3.4.4: GCC_3.4.4
gcc-4.0.0: GCC_4.0.0
gcc-4.1.0: GCC_4.1.0
gcc-4.2.0: GCC_4.2.0
Release versioning on the libstdc++.so binary, implemented in the same was as the libgcc_s.so binary, above.
It is versioned as follows:
gcc-3.0.0: libstdc++.so.3.0.0
gcc-3.0.1: libstdc++.so.3.0.1
gcc-3.0.2: libstdc++.so.3.0.2
gcc-3.0.3: libstdc++.so.3.0.2 (Error should be libstdc++.so.3.0.3)
gcc-3.0.4: libstdc++.so.3.0.4
gcc-3.1.0: libstdc++.so.4.0.0
gcc-3.1.1: libstdc++.so.4.0.1
gcc-3.2.0: libstdc++.so.5.0.0
gcc-3.2.1: libstdc++.so.5.0.1
gcc-3.2.2: libstdc++.so.5.0.2
gcc-3.2.3: libstdc++.so.5.0.3 (Not strictly required)
gcc-3.3.0: libstdc++.so.5.0.4
gcc-3.3.1: libstdc++.so.5.0.5
gcc-3.3.2: libstdc++.so.5.0.5
gcc-3.3.3: libstdc++.so.5.0.5
gcc-3.4.0: libstdc++.so.6.0.0
gcc-3.4.1: libstdc++.so.6.0.1
gcc-3.4.2: libstdc++.so.6.0.2
gcc-3.4.3: libstdc++.so.6.0.3
gcc-3.4.4: libstdc++.so.6.0.3
gcc-3.4.5: libstdc++.so.6.0.3
gcc-3.4.6: libstdc++.so.6.0.3
gcc-4.0.0: libstdc++.so.6.0.4
gcc-4.0.1: libstdc++.so.6.0.5
gcc-4.0.2: libstdc++.so.6.0.6
gcc-4.0.3: libstdc++.so.6.0.7
gcc-4.1.0: libstdc++.so.6.0.7
gcc-4.1.1: libstdc++.so.6.0.8
gcc-4.1.2: libstdc++.so.6.0.8
gcc-4.2.0: libstdc++.so.6.0.9
Symbol versioning on the libstdc++.so binary.
mapfile: libstdc++/config/linker-map.gnu
It is versioned with the following labels and version definitions, where the version definition is the maximum for a *************** release of the series to remain link com *** 95,101 **** gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0 release.) If a particular release is not listed, it has the same ! version labels as the preceeding release.
gcc-3.0.0: (Error, not versioned)
gcc-3.0.1: (Error, not versioned)
gcc-3.0.2: (Error, not versioned)
gcc-3.0.3: (Error, not versioned)
gcc-3.0.4: (Error, not versioned)
gcc-3.1.0: GLIBCPP_3.1, CXXABI_1
gcc-3.1.1: GLIBCPP_3.1, CXXABI_1
gcc-3.2.0: GLIBCPP_3.2, CXXABI_1.2
gcc-3.2.1: GLIBCPP_3.2.1, CXXABI_1.2
gcc-3.2.2: GLIBCPP_3.2.2, CXXABI_1.2
gcc-3.2.3: GLIBCPP_3.2.2, CXXABI_1.2
gcc-3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1
gcc-3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.4.0: GLIBCXX_3.4, CXXABI_1.3
gcc-3.4.1: GLIBCXX_3.4.1, CXXABI_1.3
gcc-3.4.2: GLIBCXX_3.4.2
gcc-3.4.3: GLIBCXX_3.4.3
gcc-4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1
gcc-4.0.1: GLIBCXX_3.4.5
gcc-4.0.2: GLIBCXX_3.4.6
gcc-4.0.3: GLIBCXX_3.4.7
gcc-4.1.1: GLIBCXX_3.4.8
gcc-4.2.0: GLIBCXX_3.4.9
Incremental bumping of a compiler pre-defined macro, __GXX_ABI_VERSION. This macro is defined as the version of the compiler v3 ABI, with g++ 3.0.x being version 100. This macro will --- 95,101 ---- gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0 release.) If a particular release is not listed, it has the same ! version labels as the preceding release.
gcc-3.0.0: (Error, not versioned)
gcc-3.0.1: (Error, not versioned)
gcc-3.0.2: (Error, not versioned)
gcc-3.0.3: (Error, not versioned)
gcc-3.0.4: (Error, not versioned)
gcc-3.1.0: GLIBCPP_3.1, CXXABI_1
gcc-3.1.1: GLIBCPP_3.1, CXXABI_1
gcc-3.2.0: GLIBCPP_3.2, CXXABI_1.2
gcc-3.2.1: GLIBCPP_3.2.1, CXXABI_1.2
gcc-3.2.2: GLIBCPP_3.2.2, CXXABI_1.2
gcc-3.2.3: GLIBCPP_3.2.2, CXXABI_1.2
gcc-3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1
gcc-3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1
gcc-3.4.0: GLIBCXX_3.4, CXXABI_1.3
gcc-3.4.1: GLIBCXX_3.4.1, CXXABI_1.3
gcc-3.4.2: GLIBCXX_3.4.2
gcc-3.4.3: GLIBCXX_3.4.3
gcc-4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1
gcc-4.0.1: GLIBCXX_3.4.5
gcc-4.0.2: GLIBCXX_3.4.6
gcc-4.0.3: GLIBCXX_3.4.7
gcc-4.1.1: GLIBCXX_3.4.8
gcc-4.2.0: GLIBCXX_3.4.9
Incremental bumping of a compiler pre-defined macro, __GXX_ABI_VERSION. This macro is defined as the version of the compiler v3 ABI, with g++ 3.0.x being version 100. This macro will *************** class in registers, the compiler will be *** 287,293 **** addition, they have the possibility of changing without impacting ABI compatibility.
The following namespaces are transformed by the mapfile:
namespace std Defaults to exporting all symbols in label
! GLIBCXX that do not begin with an underscore, ie
__test_func would not be exported by default. Select
exceptional symbols are allowed to be visible.
namespace __gnu_cxx Defaults to not exporting any symbols in label
GLIBCXX, select items are allowed to be visible.
namespace __gnu_internalDefaults to not exported, no items are allowed to be visible.
namespace __cxxabiv1, aliased to namespace abiDefaults to not exporting any symbols in label --- 287,293 ---- addition, they have the possibility of changing without impacting ABI compatibility.
The following namespaces are transformed by the mapfile:
namespace std Defaults to exporting all symbols in label
! GLIBCXX that do not begin with an underscore, i.e.,
__test_func would not be exported by default. Select
exceptional symbols are allowed to be visible.
namespace __gnu_cxx Defaults to not exporting any symbols in label
GLIBCXX, select items are allowed to be visible.
namespace __gnu_internalDefaults to not exported, no items are allowed to be visible.
namespace __cxxabiv1, aliased to namespace abiDefaults to not exporting any symbols in label *************** gcc test.c -g -O2 -L. -lone -ltwo /usr/l *** 428,434 **** difficult. In particular, compiler generated constructs such as implicit instantiations for templates, typeinfo information, and virtual tables all may cause ABI leakage across shared library ! boundaries. Because of this, mixing C++ ABI's is not recommended at this time.
For more background on this issue, see these bugzilla entries: --- 428,434 ---- difficult. In particular, compiler generated constructs such as implicit instantiations for templates, typeinfo information, and virtual tables all may cause ABI leakage across shared library ! boundaries. Because of this, mixing C++ ABIs is not recommended at this time.
For more background on this issue, see these bugzilla entries: *************** gcc test.c -g -O2 -L. -lone -ltwo /usr/l *** 436,489 **** 24660: versioning weak symbols in libstdc++
19664: libstdc++ headers should have pop/push of the visibility around the declarations !
Versioning With Namespaces . ISO C++ J16/06-0083 --- 436,489 ---- 24660: versioning weak symbols in libstdc++
19664: libstdc++ headers should have pop/push of the visibility around the declarations !
Versioning With Namespaces
.
ISO C++ J16/06-0083
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/api.html gcc-4.3.1/libstdc++-v3/doc/html/manual/api.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/api.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/api.html Thu Apr 10 22:53:15 2008
***************
*** 1,7 ****
! A list of user-visible changes, in cronological order
Extensions moved to
--- 1,7 ----
! A list of user-visible changes, in chronological order
Extensions moved to
*************** _Alloc_traits have been removed.
*** 52,58 ****
Default behavior of
Previous versions prior to 3.4 cache allocations in a memory
pool, instead of passing through to call the global allocation
! operators (ie, Previously, all allocators were written to the SGI
--- 52,58 ----
Default behavior of
Previous versions prior to 3.4 cache allocations in a memory
pool, instead of passing through to call the global allocation
! operators (i.e., Previously, all allocators were written to the SGI
*************** _Alloc_traits have been removed.
*** 72,82 ****
__alloc to select an underlying allocator that
satisfied memory allocation requests. The selection of this
underlying allocator was not user-configurable.
! Table B.1. Extension Allocators Releases after gcc-3.4 have continued to add to the collection
of available allocators. All of these new allocators are
standard-style. The following table includes details, along with
the first released version of GCC that included the extension allocator.
! Table B.2. Extension Allocators Continued
Debug mode first appears.
Precompiled header support PCH support.
--- 72,82 ----
__alloc to select an underlying allocator that
satisfied memory allocation requests. The selection of this
underlying allocator was not user-configurable.
! Table B.1. Extension Allocators Releases after gcc-3.4 have continued to add to the collection
of available allocators. All of these new allocators are
standard-style. The following table includes details, along with
the first released version of GCC that included the extension allocator.
! Table B.2. Extension Allocators Continued
Debug mode first appears.
Precompiled header support PCH support.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/appendix_contributing.html gcc-4.3.1/libstdc++-v3/doc/html/manual/appendix_contributing.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/appendix_contributing.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/appendix_contributing.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
! Table of Contents
The GNU C++ Library follows an open development model. Active
contributors are assigned maintainer-ship responsibility, and given
write access to the source repository. First time contributors
--- 1,6 ----
! Table of Contents
The GNU C++ Library follows an open development model. Active
contributors are assigned maintainer-ship responsibility, and given
write access to the source repository. First time contributors
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/appendix_porting.html gcc-4.3.1/libstdc++-v3/doc/html/manual/appendix_porting.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/appendix_porting.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/appendix_porting.html Thu Apr 10 22:53:15 2008
***************
*** 47,53 ****
discourage that.
Most comments should use {octothorpes, shibboleths, hash marks,
! pound signs, whatevers} rather than "dnl". Nearly all comments in
configure.ac should. Comments inside macros written in ancilliary
.m4 files should. About the only comments which should
not use #, but use dnl instead, are comments
--- 47,53 ----
discourage that.
Most comments should use {octothorpes, shibboleths, hash marks,
! pound signs, whatever} rather than "dnl". Nearly all comments in
configure.ac should. Comments inside macros written in ancilliary
.m4 files should. About the only comments which should
not use #, but use dnl instead, are comments
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/backwards.html gcc-4.3.1/libstdc++-v3/doc/html/manual/backwards.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/backwards.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/backwards.html Thu Apr 10 22:53:15 2008
*************** ISO Standard (e.g., statistical analysis
*** 14,21 ****
really useful things that are used by a lot of people, the Standards
Committee couldn't include everything, and so a lot of those
“obvious” classes didn't get included.
! Known Issues include many of the limitations of its immediate ancestor. Portability notes and known implementation limitations are as follows. At least some older implementations don't have
In earlier versions of the standard,
Known Issues include many of the limitations of its immediate ancestor. Portability notes and known implementation limitations are as follows. At least some older implementations don't have
In earlier versions of the standard,
Portability notes and known implementation limitations are as follows.
!
Some care is required to support C++ compiler and or library
implementation that do not have the standard library in
Portability notes and known implementation limitations are as follows.
!
Some care is required to support C++ compiler and or library
implementation that do not have the standard library in
The following illustrate implementation-allowed illegal iterator
use, and then correct use.
--- 105,111 ----
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
fi
])
!
The following illustrate implementation-allowed illegal iterator
use, and then correct use.
*************** AC_DEFUN([AC_CXX_NAMESPACE_STD], [
*** 118,124 ****
Glibc 2.0.x and 2.1.x define
One solution is to add an autoconf-test for this:
One solution is to add an autoconf-test for this:
If you are using other (non-GNU) compilers it might be a good idea
to check for
Use some kind of autoconf test, plus this:
If you are using other (non-GNU) compilers it might be a good idea
to check for
Use some kind of autoconf test, plus this:
There are two functions for deleting the contents of a string:
There are two functions for deleting the contents of a string:
! Unfortunately, ut
These are no longer supported. Please use stringstreams instead.
!
Although the ISO standard
! Unfortunately,
These are no longer supported. Please use stringstreams instead.
!
Although the ISO standard There is additional information in the libstdc++-v2 info files, in
particular “info iostream”.
!
Earlier GCC releases had a somewhat different approach to
threading configuration and proper compilation. Before GCC 3.0,
configuration of the threading model was dictated by compiler
--- 296,309 ----
Another example of using stringstreams is in this howto.
There is additional information in the libstdc++-v2 info files, in
particular “info iostream”.
!
Earlier GCC releases had a somewhat different approach to
threading configuration and proper compilation. Before GCC 3.0,
configuration of the threading model was dictated by compiler
*************** libstdc++-v3.
*** 361,367 ****
of the SGI STL (version 3.3), with extensive changes.
A more formal description of the V3 goals can be found in the
official design document.
! Portability notes and known implementation limitations are as follows. The pre-ISO C++ headers
( A more formal description of the V3 goals can be found in the
official design document.
! Portability notes and known implementation limitations are as follows. The pre-ISO C++ headers
( At this time most of the features of the SGI STL extension have been
replaced by standardized libraries.
In particular, the unordered_map and unordered_set containers of TR1
are suitable replacement for the non-standard hash_map and hash_set
--- 433,439 ----
directive At this time most of the features of the SGI STL extension have been
replaced by standardized libraries.
In particular, the unordered_map and unordered_set containers of TR1
are suitable replacement for the non-standard hash_map and hash_set
*************** AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
*** 505,511 ****
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
fi
])
! The existence of The existence of
Phil Edwards writes: It was considered and rejected for the ISO
--- 516,522 ----
decide whether you want to create/replace or not. To my knowledge,
even older implementations support
Phil Edwards writes: It was considered and rejected for the ISO
*************** No
For a portable solution (among systems which use
! filedescriptors), you need to implement a subclass of
For a portable solution (among systems which use
! file descriptors), you need to implement a subclass of
Check for complete library coverage of the C++1998/2003 standard.
Check for complete library coverage of the C++1998/2003 standard.
Check for library coverage of the TR1 standard.
Check for library coverage of the TR1 standard.
Check for baseline language coverage in the compiler for the C++0xstandard.
Check for baseline language coverage in the compiler for the C++0xstandard.
[
lbl32
]
Migration guide for GCC-3.2
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bitmap_allocator.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bitmap_allocator.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bitmap_allocator.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bitmap_allocator.html Thu Apr 10 22:53:15 2008
*************** else return false.
Consider a block of size 64 ints. In memory, it would look like this:
(assume a 32-bit system where, size_t is a 32-bit entity).
!
The first Column(268) represents the size of the Block in bytes as
seen by the Bitmap Allocator. Internally, a global free list is
used to keep track of the free blocks used and given back by the
--- 103,109 ----
Consider a block of size 64 ints. In memory, it would look like this:
(assume a 32-bit system where, size_t is a 32-bit entity).
!
The first Column(268) represents the size of the Block in bytes as
seen by the Bitmap Allocator. Internally, a global free list is
used to keep track of the free blocks used and given back by the
*************** else return false.
(32 x k + 1) / (2 x (32 x k + 1 + 32 x c)) x 100.
! Where, k => The constant overhead per node. eg. for list, it is
! 8 bytes, and for map it is 12 bytes. c => The size of the
base type on which the map/list is instantiated. Thus, suppose the
type1 is int and type2 is double, they are related by the relation
sizeof(double) == 2*sizeof(int). Thus, all types must have this
--- 141,148 ----
(32 x k + 1) / (2 x (32 x k + 1 + 32 x c)) x 100.
! where k is the constant overhead per node (e.g., for list, it is
! 8 bytes, and for map it is 12 bytes) and c is the size of the
base type on which the map/list is instantiated. Thus, suppose the
type1 is int and type2 is double, they are related by the relation
sizeof(double) == 2*sizeof(int). Thus, all types must have this
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas03.html Thu Apr 10 22:53:15 2008
***************
*** 1,7 ****
!
Identifiers that conflict and should be avoided.
!
Identifiers that conflict and should be avoided.
Editing the DocBook sources requires an XML editor. Many
! exist: some notable options
include emacs, Kate,
or Conglomerate.
***************
*** 103,109 ****
in
! For procesessing XML, an XML processor and some style
sheets are necessary. Defaults are xsltproc
provided by
--- 103,109 ----
in
! For processing XML, an XML processor and some style
sheets are necessary. Defaults are xsltproc
provided by
*************** xmllint --noout --valid
This page describes the TR1 support in mainline GCC SVN, not in any particular
release.
! Table 1.1. C++ TR1 Implementation Status
Footnotes
The shared_ptr implementation uses some code from the
--- 6101,6107 ----
This page describes the TR1 support in mainline GCC SVN, not in any particular
release.
! Table 1.1. C++ TR1 Implementation Status
Footnotes
The shared_ptr implementation uses some code from the
*************** presence of the required flag.
*** 6120,6128 ****
This page describes the C++0x support in mainline GCC SVN, not in any
particular release.
! Table 1.2. C++ 200x Implementation Status
Footnotes
The shared_ptr implementation uses some code from the
--- 6120,6128 ----
This page describes the C++0x support in mainline GCC SVN, not in any
particular release.
! Table 1.2. C++ 200x Implementation Status
Footnotes
The shared_ptr implementation uses some code from the
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html Thu Apr 10 22:53:15 2008
***************
*** 19,33 ****
the 1998 standard as updated for 2003, and the draft of the
upcoming 200x standard.
! C++98/03 include files. These are available in the default compilation mode, ie Table 3.1. C++ 1998 Library Headers Table 3.2. C++ 1998 Library Headers for C Library Facilities C++0x include files. These are only available in C++0x compilation mode, ie Table 3.3. C++ 200x Library Headers Table 3.4. C++ 200x Library Headers for C Library Facilities
In addition, TR1 includes as:
! Table 3.5. C++ TR1 Library Headers Table 3.6. C++ TR1 Library Headers for C Library Facilities
Also included are files for the C++ ABI interface:
!
And a large variety of extensions.
! Table 3.8. Extension Headers Table 3.9. Extension Debug Headers A few simple rules.
First, mixing different dialects of the standard headers is not
possible. It's an all-or-nothing affair. Thus, code like
! C++98/03 include files. These are available in the default compilation mode, i.e. Table 3.1. C++ 1998 Library Headers Table 3.2. C++ 1998 Library Headers for C Library Facilities C++0x include files. These are only available in C++0x compilation mode, i.e. Table 3.3. C++ 200x Library Headers Table 3.4. C++ 200x Library Headers for C Library Facilities
In addition, TR1 includes as:
! Table 3.5. C++ TR1 Library Headers Table 3.6. C++ TR1 Library Headers for C Library Facilities
Also included are files for the C++ ABI interface:
!
And a large variety of extensions.
! Table 3.8. Extension Headers Table 3.9. Extension Debug Headers A few simple rules.
First, mixing different dialects of the standard headers is not
possible. It's an all-or-nothing affair. Thus, code like
There are three main namespaces.
std The ISO C++ standards specify that "all library entities are defined
! within namespace std." This includes namepaces nested
within abi Specified by the C++ ABI. This ABI specifies a number of type and
--- 2,8 ----
There are three main namespaces.
std The ISO C++ standards specify that "all library entities are defined
! within namespace std." This includes namespaces nested
within abi Specified by the C++ ABI. This ABI specifies a number of type and
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt02pr01.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt02pr01.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt02pr01.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt02pr01.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
!
This part deals with the functions called and objects created
automatically during the course of a program's existence.
--- 1,6 ----
!
This part deals with the functions called and objects created
automatically during the course of a program's existence.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt03ch07.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt03ch07.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt03ch07.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt03ch07.html Thu Apr 10 22:53:15 2008
***************
*** 11,16 ****
Derived from this are several classes that may have a
!
Derived from this are several classes that may have a
!
--- 11,17 ----
class template called
***************
*** 90,96 ****
or loading and unloading shared objects in memory. As such, using
caching allocators on systems that do not support
The only allocator interface that
is support is the standard C++ interface. As such, all STL
containers have been adjusted, and all external allocators have
--- 90,96 ----
or loading and unloading shared objects in memory. As such, using
caching allocators on systems that do not support
The only allocator interface that
is support is the standard C++ interface. As such, all STL
containers have been adjusted, and all external allocators have
***************
*** 103,109 ****
The base class that
It's difficult to pick an allocation strategy that will provide
maximum utility, without excessively penalizing some behavior. In
fact, it's difficult just deciding which typical actions to measure
--- 103,109 ----
The base class that
It's difficult to pick an allocation strategy that will provide
maximum utility, without excessively penalizing some behavior. In
fact, it's difficult just deciding which typical actions to measure
***************
*** 140,146 ****
The current default choice for
In use,
In use,
Includes memory tracking and marking abilities as well as hooks for
! throwing exceptinos at configurable intervals (including random,
all, none).
Includes memory tracking and marking abilities as well as hooks for
! throwing exceptions at configurable intervals (including random,
all, none).
The
For thread-enabled configurations, the pool is locked with a
single big lock. In some situations, this implementation detail
! may result in severe performance degredation.
(Note that the GCC thread abstraction layer allows us to provide
safe zero-overhead stubs for the threading routines, if threads
--- 282,294 ----
The
For thread-enabled configurations, the pool is locked with a
single big lock. In some situations, this implementation detail
! may result in severe performance degradation.
(Note that the GCC thread abstraction layer allows us to provide
safe zero-overhead stubs for the threading routines, if threads
***************
*** 305,315 ****
A high-performance allocator that uses a bit-map to keep track
of the used and unused memory locations. It has its own
documentation, found here.
! The Standard Librarian: What Are Allocators Good
.
austernm
--- 305,315 ----
A high-performance allocator that uses a bit-map to keep track
of the used and unused memory locations. It has its own
documentation, found here.
! Yalloc: A Recycling C++ Allocator.
yenf
Copyright © .
--- 317,344 ----
.
! . Yalloc: A Recycling C++ Allocator.
yenf
Copyright © .
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt05ch13.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt05ch13.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt05ch13.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt05ch13.html Thu Apr 10 22:53:15 2008
***************
*** 1,13 ****
! Table of Contents
Here are Standard, simple, and portable ways to perform common
transformations on a
! This code will go through some iterations. Here's a simiple
version:
Table of Contents
Here are Standard, simple, and portable ways to perform common
transformations on a
! This code will go through some iterations. Here's a simple
version:
Obviously, the calls to Obviously, the calls to
The well-known-and-if-it-isn't-well-known-it-ought-to-be
Guru of the Week
discussions held on Usenet covered this topic in January of 1998.
--- 1,6 ----
!
The well-known-and-if-it-isn't-well-known-it-ought-to-be
Guru of the Week
discussions held on Usenet covered this topic in January of 1998.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt05ch13s03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt05ch13s03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt05ch13s03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt05ch13s03.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
!
The
The
Literally, a facet is strictly defined:
! Dontaining the following public data member:
--- 19,25 ----
Literally, a facet is strictly defined:
! Containing the following public data member:
*************** class id
*** 42,52 ****
Provides an index for looking up specific facets.
The major design challenge is fitting an object-orientated and
! non-global locale design ontop of POSIX and other relevant stanards,
which include the Single Unix (nee X/Open.)
Because C and earlier versions of POSIX falls down so completely,
! portibility is an issue.
The major design challenge is fitting an object-orientated and
! non-global locale design on top of POSIX and other relevant standards,
which include the Single Unix (nee X/Open.)
Because C and earlier versions of POSIX falls down so completely,
! portability is an issue.
affects the C functions as if the following call was made:
! On the other hand, there is *no* viceversa, that is, calling
setlocale has *no* whatsoever on the C++ locale mechanism, in
particular on the working of locale(""), which constructs the locale
object from the environment of the running program, that is, in
--- 372,378 ----
global C locale is modified if a named C++ locale object is set as the
global locale" (emphasis Paolo), that is:
affects the C functions as if the following call was made:
! On the other hand, there is *no* vice versa, that is, calling
setlocale has *no* whatsoever on the C++ locale mechanism, in
particular on the working of locale(""), which constructs the locale
object from the environment of the running program, that is, in
*************** global locale" (emphasis Paolo), that is
*** 383,389 ****
has already taken place?
Document how named locales error check when filling data
! members. Ie, a fr_FR locale that doesn't have
numpunct::truename(): does it use "true"? Or is it a blank
string? What's the convention?
--- 383,389 ----
has already taken place?
Document how named locales error check when filling data
! members. I.e., a fr_FR locale that doesn't have
numpunct::truename(): does it use "true"? Or is it a blank
string? What's the convention?
*************** global locale" (emphasis Paolo), that is
*** 393,419 ****
language code and ISO country code (say, "de_DE").
What should non-required facet instantiations do? If the
! generic implemenation is provided, then how to end-users
provide specializations?
!
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt06ch15.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt06ch15.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt06ch15.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt06ch15.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
! Table of Contents
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
conversions are made between the internal character set (always UCS4
on GNU/Linux) and whatever the currently selected locale for the
--- 1,6 ----
! Table of Contents
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
conversions are made between the internal character set (always UCS4
on GNU/Linux) and whatever the currently selected locale for the
*************** characters.
*** 41,71 ****
this class?
Get the ctype<wchar_t>::mask stuff under control. Need to
! make some kind of static table, and not do lookup evertime
somebody hits the do_is... functions. Too bad we can't just
redefine mask for ctype<wchar_t>
Rename abstract base class. See if just smash-overriding is a
better approach. Clarify, add sanity to naming.
!
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
--- 41,71 ----
this class?
Get the ctype<wchar_t>::mask stuff under control. Need to
! make some kind of static table, and not do lookup every time
somebody hits the do_is... functions. Too bad we can't just
redefine mask for ctype<wchar_t>
Rename abstract base class. See if just smash-overriding is a
better approach. Clarify, add sanity to naming.
!
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt09pr02.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt09pr02.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt09pr02.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt09pr02.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
!
The neatest accomplishment of the algorithms chapter is that all the
work is done via iterators, not containers directly. This means two
important things:
--- 1,6 ----
!
The neatest accomplishment of the algorithms chapter is that all the
work is done via iterators, not containers directly. This means two
important things:
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html Thu Apr 10 22:53:15 2008
***************
*** 19,24 ****
mode or with debug mode. The
following table provides the names and headers of the debugging
containers:
! Table 30.1. Debugging Containers In addition, when compiling in C++0x mode, these additional
containers have additional debug capability.
! Table 30.2. Debugging Containers C++0x Table 30.1. Debugging Containers In addition, when compiling in C++0x mode, these additional
containers have additional debug capability.
! Table 30.2. Debugging Containers C++0x Achieving link- and run-time coexistence is not a trivial
implementation task. To achieve this goal we required a small
--- 187,193 ----
allows release-compiled and debug-compiled code to be linked and
executed together without causing unpredictable behavior. This
guarantee minimizes the recompilation that users are required to
! perform, shortening the detect-compile-debug bug hunting cycle
and making the debug mode easier to incorporate into development
environments by minimizing dependencies. Achieving link- and run-time coexistence is not a trivial
implementation task. To achieve this goal we required a small
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s02.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s02.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s02.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s02.html Thu Apr 10 22:53:15 2008
***************
*** 1,7 ****
The parallel mode STL algorithms are currently not exception-safe,
! i. e. user-defined functors must not throw exceptions.
Since the current GCC OpenMP implementation does not support
OpenMP parallel regions in concurrent threads,
it is not possible to call parallel STL algorithm in
--- 1,7 ----
The parallel mode STL algorithms are currently not exception-safe,
! i.e. user-defined functors must not throw exceptions.
Since the current GCC OpenMP implementation does not support
OpenMP parallel regions in concurrent threads,
it is not possible to call parallel STL algorithm in
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html Thu Apr 10 22:53:15 2008
***************
*** 1,20 ****
! To use the libstdc++ parallel mode, compile your application with
! the compiler flag Note that the When it is not feasible to recompile your entire application, or
only specific algorithms need to be parallel-aware, individual
parallel algorithms can be made available explicitly. These
parallel algorithms are functionally equivalent to the standard
--- 1,22 ----
!
! To use the libstdc++ parallel mode, compile your application with
! the compiler flag Note that the When it is not feasible to recompile your entire application, or
only specific algorithms need to be parallel-aware, individual
parallel algorithms can be made available explicitly. These
parallel algorithms are functionally equivalent to the standard
***************
*** 23,26 ****
compiled with either release mode or with parallel mode. The
following table provides the names and headers of the parallel
algorithms:
! Table 31.1. Parallel Algorithms Table 31.1. Parallel Algorithms
! All parallel algorithms are intended to have signatures that are
equivalent to the ISO C++ algorithms replaced. For instance, the
!
!
! All parallel algorithms are intended to have signatures that are
equivalent to the ISO C++ algorithms replaced. For instance, the
! But.... why the elipses?
! The elipses in the example above represent additional overloads
required for the parallel version of the function. These additional
overloads are used to dispatch calls from the ISO C++ function
signature to the appropriate parallel function (or sequential
function, if no parallel functions are deemed worthy), based on either
compile-time or run-time conditions.
Compile-time conditions are referred to as "embarrassingly
! parallel," and are denoted with the appropriate dispatch object, ie
one of But.... why the ellipses?
! The ellipses in the example above represent additional overloads
required for the parallel version of the function. These additional
overloads are used to dispatch calls from the ISO C++ function
signature to the appropriate parallel function (or sequential
function, if no parallel functions are deemed worthy), based on either
compile-time or run-time conditions.
Compile-time conditions are referred to as "embarrassingly
! parallel," and are denoted with the appropriate dispatch object, i.e.,
one of Some algorithm variants can be enabled/disabled/selected at compile-time.
! See
!
! To specify the number of threads to be used for an algorithm,
! use
! Parallelism always incurs some overhead. Thus, it is not
! helpful to parallelize operations on very small sets of data.
! There are measures to avoid parallelizing stuff that is not worth it.
! For each algorithm, a minimum problem size can be stated,
! usually using the variable
! One namespace contain versions of code that are explicitly sequential:
Two namespaces contain the parallel mode:
Parallel implementations of standard components, including
template helpers to select parallelism, are defined in Support and general infrastructure is in
! Several aspects of the overall runtime environment can be manipulated
! by standard OpenMP function calls.
! To specify the number of threads to be used for an algorithm, use the
! function
! Other parts of the runtime environment able to be manipulated include
! nested parallelism (
! To force an algorithm to execute sequentially, even though parallelism
! is switched on in general via the macro
! Like so:
!
! or
!
! In addition, some parallel algorithm variants can be enabled/disabled/selected
! at compile-time.
!
! See
! The default parallelization strategy, the choice of specific algorithm
! strategy, the minimum threshold limits for individual parallel
! algorithms, and aspects of the underlying hardware can be specified as
! desired via manipulation
! of
! First off, the choice of parallelization strategy: serial, parallel,
! or implementation-deduced. This corresponds
! to
! Next, the sub-choices for algorithm implementation. Specific
! algorithms like
! Likewise for setting the minimal threshold for algorithm
! parallelization. Parallelism always incurs some overhead. Thus, it is
! not helpful to parallelize operations on very small sets of
! data. Because of this, measures are taken to avoid parallelizing below
! a certain, pre-determined threshold. For each algorithm, a minimum
! problem size is encoded as a variable in the
! active
! Finally, hardware details like L1/L2 cache size can be hardwired
! via
! All these configuration variables can be changed by the user, if
! desired. Please
! see
! A small example of tuning the default:
! One namespace contain versions of code that are always
! explicitly sequential:
Two namespaces contain the parallel mode:
Parallel implementations of standard components, including
template helpers to select parallelism, are defined in Support and general infrastructure is in
The log and summary files for conformance testing are in the
!
To run the performance tests with the parallel mode active,
The result file for performance testing are in the
!
The log and summary files for conformance testing are in the
!
To run the performance tests with the parallel mode active,
The result file for performance testing are in the
! 25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper
predicates. Look in the doxygen-generated pages for notes on these.
25.3.8 (lexigraphical_compare) is extended with
which does... what?
--- 13,19 ----
25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper
predicates. Look in the doxygen-generated pages for notes on these.
25.3.8 (lexicographical_compare) is extended with
which does... what?
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch39.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch39.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch39.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch39.html Thu Apr 10 22:53:15 2008
***************
*** 1,7 ****
! Transforming C++ ABI itentifiers (like RTTI symbols) into the
original C++ source identifiers is called
“demangling.”
--- 1,7 ----
! Transforming C++ ABI identifiers (like RTTI symbols) into the
original C++ source identifiers is called
“demangling.”
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
! The functions for atomic operations described above are either
implemented via compiler intrinsics (if the underlying host is
capable) or by library fallbacks. Compiler intrinsics (builtins) are always preferred. However, as
the compiler builtins for atomics are not universally implemented,
--- 1,6 ----
! The functions for atomic operations described above are either
implemented via compiler intrinsics (if the underlying host is
capable) or by library fallbacks. Compiler intrinsics (builtins) are always preferred. However, as
the compiler builtins for atomics are not universally implemented,
*************** hardware, hand-crafted assembly is selec
*** 22,28 ****
cris hppa i386 i486 m48k mips sparc And for the rest, a simulated atomic lock via pthreads.
Detailed information about compiler intrinsics for atomic operations can be found in the GCC documentation.
More details on the library fallbacks from the porting section.
! A thin layer above IEEE 1003.1 (ie pthreads) is used to abstract
the thread interface for GCC. This layer is called "gthread," and is
comprised of one header file that wraps the host's default thread layer with
a POSIX-like interface.
--- 22,28 ----
cris hppa i386 i486 m48k mips sparc And for the rest, a simulated atomic lock via pthreads.
Detailed information about compiler intrinsics for atomic operations can be found in the GCC documentation.
More details on the library fallbacks from the porting section.
! A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract
the thread interface for GCC. This layer is called "gthread," and is
comprised of one header file that wraps the host's default thread layer with
a POSIX-like interface.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12pr03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12pr03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12pr03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12pr03.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
!
Here we will make an attempt at describing the non-Standard extensions to
the library. Some of these are from SGI's STL, some of these are GNU's,
and some just seemed to appear on the doorstep.
--- 1,6 ----
!
Here we will make an attempt at describing the non-Standard extensions to
the library. Some of these are from SGI's STL, some of these are GNU's,
and some just seemed to appear on the doorstep.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/codecvt.html gcc-4.3.1/libstdc++-v3/doc/html/manual/codecvt.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/codecvt.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/codecvt.html Thu Apr 10 22:53:15 2008
*************** UCS2, UCS4, UNICODE, UNICODEBIG, UNICODE
*** 111,117 ****
UTF-16, UTF8, UTF16).
For iconv-based implementations, string literals for each of the
! encodings (ie. "UCS-2" and "UTF-8") are necessary,
although for other,
non-iconv implementations a table of enumerated values or some other
mechanism may be required.
--- 111,117 ----
UTF-16, UTF8, UTF16).
For iconv-based implementations, string literals for each of the
! encodings (i.e. "UCS-2" and "UTF-8") are necessary,
although for other,
non-iconv implementations a table of enumerated values or some other
mechanism may be required.
*************** mechanism may be required.
*** 130,136 ****
conversion descriptor encodes more information than a simple encoding
state type.
! Conversion descriptors for both directions of encoding. (ie, both
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
Something to indicate if the conversion requested if valid.
--- 130,136 ----
conversion descriptor encodes more information than a simple encoding
state type.
! Conversion descriptors for both directions of encoding. (i.e., both
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
Something to indicate if the conversion requested if valid.
*************** The two required specializations are imp
*** 179,185 ****
codecvt<char, char, mbstate_t>
! This is a degenerate (ie, does nothing) specialization. Implementing
this was a piece of cake.
! This is a degenerate (i.e., does nothing) specialization. Implementing
this was a piece of cake.
wchar_t/char internal buffers and conversions between
internal/external buffers?
!
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
. Copyright © 2000 Addison Wesley Longman, Inc..
Addison Wesley Longman
! .
UTF-8 and Unicode FAQ for Unix/Linux
.
--- 337,377 ----
wchar_t/char internal buffers and conversions between
internal/external buffers?
!
The GNU C Library
! . Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
. Copyright © 2000 Addison Wesley Longman, Inc..
Addison Wesley Longman
! .
UTF-8 and Unicode FAQ for Unix/Linux
.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/concurrency.html gcc-4.3.1/libstdc++-v3/doc/html/manual/concurrency.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/concurrency.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/concurrency.html Thu Apr 10 22:53:15 2008
***************
*** 1,6 ****
! Table of Contents The file <ext/concurrence.h> contains all the higher-level
constructs for playing with threads. In contrast to the atomics layer,
the concurrence layer consists largely of types. All types are defined within
--- 1,6 ----
! Table of Contents The file <ext/concurrence.h> contains all the higher-level
constructs for playing with threads. In contrast to the atomics layer,
the concurrence layer consists largely of types. All types are defined within
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/extensions.html gcc-4.3.1/libstdc++-v3/doc/html/manual/extensions.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/extensions.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/extensions.html Thu Apr 10 22:53:15 2008
***************
*** 1,3 ****
!
Making the message catalogs can be initially tricky, but become
quite simple with practice. For complete info, see the gettext
--- 133,139 ----
library locale support is necessary for more than just the
Making the message catalogs can be initially tricky, but become
quite simple with practice. For complete info, see the gettext
*************** void test01()
*** 205,211 ****
There are issues with gettext needing the global locale set
to extract a message. This dependence on the global locale
makes the current "gnu" model non MT-safe. Future versions
! of glibc, ie glibc 2.3.x will fix this, and the C++ library
bits are already in place.
Development versions of the GNU "C" library, glibc 2.3 will allow
--- 205,211 ----
There are issues with gettext needing the global locale set
to extract a message. This dependence on the global locale
makes the current "gnu" model non MT-safe. Future versions
! of glibc, i.e. glibc 2.3.x will fix this, and the C++ library
bits are already in place.
Development versions of the GNU "C" library, glibc 2.3 will allow
*************** void test01()
*** 218,224 ****
library functionality.
At some point in the near future, std::numpunct will probably use
! std::messages facilities to implement truename/falename
correctly. This is currently not done, but entries in
libstdc++.pot have already been made for "true" and "false" string
literals, so all that remains is the std::numpunct coding and the
--- 218,224 ----
library functionality.
At some point in the near future, std::numpunct will probably use
! std::messages facilities to implement truename/falsename
correctly. This is currently not done, but entries in
libstdc++.pot have already been made for "true" and "false" string
literals, so all that remains is the std::numpunct coding and the
*************** void test01()
*** 241,278 ****
model. As of this writing, it is unknown how to query to see
if a specified message catalog exists using the gettext
package.
!
The GNU C Library
. Copyright © 2007 FSF. Chapters 6 Character Set Handling, and 7 Locales and Internationalization
! .
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
. Copyright © 2000 Addison Wesley Longman, Inc..
Addison Wesley Longman
! .
The GNU C Library
. Copyright © 2007 FSF. Chapters 6 Character Set Handling, and 7 Locales and Internationalization
! .
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
. Copyright © 1999
The Open Group/The Institute of Electrical and Electronics Engineers, Inc..
! .
The C++ Programming Language, Special Edition
. Copyright © 2000 Addison Wesley, Inc.. Appendix D.
Addison Wesley
! .
Standard C++ IOStreams and Locales
.
Advanced Programmer's Guide and Reference
. Copyright © 2000 Addison Wesley Longman, Inc..
Addison Wesley Longman
! .
Java 2 Platform, Standard Edition, v 1.3.1 API Specification
. java.util.Properties, java.text.MessageFormat,
java.util.Locale, java.util.ResourceBundle.
! .
GNU gettext tools, version 0.10.38, Native Language Support
Library and Tools.
.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/parallel_mode.html gcc-4.3.1/libstdc++-v3/doc/html/manual/parallel_mode.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/parallel_mode.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/parallel_mode.html Thu Apr 10 22:53:15 2008
***************
*** 4,21 ****
implementation of many algorithms the C++ Standard Library.
Several of the standard algorithms, for instance
! The following library components in the include
! The following library components in the include
! The following library components in the includes
!
Parallelization of Bulk Operations for STL Dictionaries
. Copyright © 2007 .
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
! .
The Multi-Core Standard Template Library
. Copyright © 2007 .
Euro-Par 2007: Parallel Processing. (LNCS 4641)
--- 4,20 ----
implementation of many algorithms the C++ Standard Library.
Several of the standard algorithms, for instance
! The following library components in the include
! The following library components in the include
!
Parallelization of Bulk Operations for STL Dictionaries
. Copyright © 2007 .
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
! .
The Multi-Core Standard Template Library
. Copyright © 2007 .
Euro-Par 2007: Parallel Processing. (LNCS 4641)
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/shared_ptr.html gcc-4.3.1/libstdc++-v3/doc/html/manual/shared_ptr.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/shared_ptr.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/shared_ptr.html Thu Apr 10 22:53:15 2008
*************** drops to zero.
*** 29,35 ****
Derived classes override those functions to destroy resources in a context
where the correct dynamic type is known. This is an application of the
technique known as type erasure.
!
A
A
The interface of
The interface of
There is a single
There is a single
The classes derived from
The classes derived from
As noted in N2351, these functions can be implemented non-intrusively using
the alias constructor. However the aliasing constructor is only available
--- 181,187 ----
change unless bug fixes require it. If the code that is common to both
C++0x and TR1 modes needs to diverge further then it might be necessary to
duplicate additional classes and only make changes to the C++0x versions.
!
As noted in N2351, these functions can be implemented non-intrusively using
the alias constructor. However the aliasing constructor is only available
*************** is called. Users should not try to use
*** 214,223 ****
As well as the extra constructors, this implementation also needs some
members of _Sp_counted_deleter to be protected where they could otherwise
be private.
!
Examples of use can be found in the testsuite, under
The resolution to C++ Standard Library issue 674,
"shared_ptr interface changes for consistency with N1856" will
need to be implemented after it is accepted into the working
--- 214,223 ----
As well as the extra constructors, this implementation also needs some
members of _Sp_counted_deleter to be protected where they could otherwise
be private.
!
Examples of use can be found in the testsuite, under
The resolution to C++ Standard Library issue 674,
"shared_ptr interface changes for consistency with N1856" will
need to be implemented after it is accepted into the working
*************** be private.
*** 265,271 ****
code to work with, Peter Dimov in particular for his help and
invaluable advice on thread safety. Phillip Jordan and Paolo
Carlini for the lock policy implementation.
! [
n2351
]
Improving shared_ptr for C++0x, Revision 2
--- 265,271 ----
code to work with, Peter Dimov in particular for his help and
invaluable advice on thread safety. Phillip Jordan and Paolo
Carlini for the lock policy implementation.
! [
n2351
]
Improving shared_ptr for C++0x, Revision 2
*************** be private.
*** 274,280 ****
.
! . [
n2456
]
C++ Standard Library Active Issues List (Revision R52)
*************** be private.
*** 283,289 ****
.
! . [
n2461
]
Working Draft, Standard for Programming Language C++
*************** be private.
*** 292,298 ****
.
! . [
boostshared_ptr
]
Boost C++ Libraries documentation - shared_ptr class template
--- 292,298 ----
.
! . [
boostshared_ptr
]
Boost C++ Libraries documentation - shared_ptr class template
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/spine.html gcc-4.3.1/libstdc++-v3/doc/html/manual/spine.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/spine.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/spine.html Thu Apr 10 22:53:15 2008
***************
*** 2,7 ****
Table of Contents List of Tables Table of Contents List of Tables
This file indicates that the host system can run tests which
! incolved multiple threads.
testsuite_wchar_t
--- 293,299 ----
testsuite_thread
This file indicates that the host system can run tests which
! involved multiple threads.
testsuite_wchar_t
*************** runtest --tool libstdc++ --srcdir=/path/
*** 324,330 ****
flux.
We are interested in any strange failures of the testsuite;
! please email the main libstdc++ mainling list if you see
something odd or have questions.
To run the libstdc++ test suite under the debug mode, edit
--- 324,330 ----
flux.
We are interested in any strange failures of the testsuite;
! please email the main libstdc++ mailing list if you see
something odd or have questions.
To run the libstdc++ test suite under the debug mode, edit
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/spine.html gcc-4.3.1/libstdc++-v3/doc/html/spine.html
*** gcc-4.3.0/libstdc++-v3/doc/html/spine.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/spine.html Thu Apr 10 22:53:15 2008
***************
*** 2,5 ****
Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
FSF
! Table of Contents Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
FSF
! Table of Contentsinclude/ext.
include/ext.
std::allocator has changed.__gnu_cxx::pool_allocator). More
recent versions default to the
simpler __gnu_cxx::new_allocator.
std::allocator has changed.__gnu_cxx::pool_allocator). More
recent versions default to the
simpler __gnu_cxx::new_allocator.
Allocator (3.4) Header (3.4) Allocator (3.[0-3]) Header (3.[0-3]) __gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h __gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h Allocator Include Version __gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0 __gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0 Allocator (3.4) Header (3.4) Allocator (3.[0-3]) Header (3.[0-3]) __gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h __gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h Allocator Include Version __gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0 __gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0 std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit.
! fstream.h,
ostream.h
--- 14,21 ----
really useful things that are used by a lot of people, the Standards
Committee couldn't include everything, and so a lot of those
“obvious” classes didn't get included.
! std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit.
! fstream.h,
ostream.h
*************** considered replaced and rewritten.
*** 41,47 ****
archived. The code is considered replaced and rewritten.
namespace std.
--- 41,47 ----
archived. The code is considered replaced and rewritten.
namespace std.
*************** considered replaced and rewritten.
*** 77,83 ****
then using that to set a value for the NAMESPACE_STD
macro. At that point, one is able to use
NAMESPACE_STD::string, which will evaluate to
! std::string or ::string (ie, in the
global namespace on systems that do not put string in
std::).
--- 77,83 ----
then using that to set a value for the NAMESPACE_STD
macro. At that point, one is able to use
NAMESPACE_STD::string, which will evaluate to
! std::string or ::string (i.e., in the
global namespace on systems that do not put string in
std::).
*************** AC_DEFUN([AC_CXX_NAMESPACE_STD], [
*** 105,111 ****
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
fi
])
! if (iterator) won't work any more => use
if (iterator != iterator_type())
! ctype.h functionality as macros
(isspace, isalpha etc.).
*************** std:: (__ctype_b[(int) ( ( 'X' ) )] &
*** 151,157 ****
(ctype.h) and the
definitions in namespace std::
(<cctype>).
!
AC_MSG_CHECKING(for container::at)
--- 151,157 ----
(ctype.h) and the
definitions in namespace std::
(<cctype>).
!
AC_MSG_CHECKING(for container::at)
*************** AC_DEFINE(HAVE_CONTAINER_AT)],
*** 177,183 ****
string::at separately.
!
#ifdef HAVE_CHAR_TRAITS
--- 177,183 ----
string::at separately.
!
#ifdef HAVE_CHAR_TRAITS
*************** AC_DEFINE(HAVE_CONTAINER_AT)],
*** 185,191 ****
#else
#define CPP_EOF EOF
#endif
!
clear and erase (the latter returns the
string).
--- 185,191 ----
#else
#define CPP_EOF EOF
#endif
! clear and erase (the latter returns the
string).
*************** erase(size_type __pos = 0, size_type __n
*** 200,214 ****
_M_data(), _M_data());
}
clear is not implemented in this
version, so you should use erase (which is probably
faster than operator=(charT*)).
! i/ostringstream-classes are
provided, (sstream), for
compatibility with older implementations the pre-ISO
--- 200,214 ----
_M_data(), _M_data());
}
clear is not implemented in this
version, so you should use erase (which is probably
faster than operator=(charT*)).
! i/ostringstream-classes are
provided, (sstream), for
compatibility with older implementations the pre-ISO
*************** any = temp;
*** 296,309 ****
Another example of using stringstreams is in this howto.
iostream.h, defalloc.h etc.) are
available, unlike previous libstdc++ versions, but inclusion
generates a warning that you are using deprecated headers.
--- 361,367 ----
of the SGI STL (version 3.3), with extensive changes.
iostream.h, defalloc.h etc.) are
available, unlike previous libstdc++ versions, but inclusion
generates a warning that you are using deprecated headers.
*************** like vector.husing namespace std; can be put at the global
scope. This should be enough to get this code compiling, assuming the
other usage is correct.
! using namespace std; can be put at the global
scope. This should be enough to get this code compiling, assuming the
other usage is correct.
! ios::nocreate being used for
input-streams has been confirmed, most probably because the author
thought it would be more correct to specify nocreate explicitly. So
--- 505,511 ----
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
fi
])
! ios::nocreate being used for
input-streams has been confirmed, most probably because the author
thought it would be more correct to specify nocreate explicitly. So
*************** open the file for reading, check if it h
*** 516,522 ****
decide whether you want to create/replace or not. To my knowledge,
even older implementations support app, ate
and trunc (except for app ?).
! app, ate
and trunc (except for app ?).
! stream::attach(int
*** 524,530 ****
that do, not all of them use integers to represent them.
std::streambuf (or
std::basic_streambuf<..>) which opens a file
given a descriptor, and then pass an instance of this to the
--- 524,530 ----
that do, not all of them use integers to represent them.
std::streambuf (or
std::basic_streambuf<..>) which opens a file
given a descriptor, and then pass an instance of this to the
*************** No stream::attach(int
*** 539,545 ****
For another example of this, refer to
fdstream example
by Nicolai Josuttis.
!
--- 539,545 ----
For another example of this, refer to
fdstream example
by Nicolai Josuttis.
!
*************** AC_DEFUN([AC_HEADER_STDCXX_98], [
*** 607,613 ****
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
fi
])
!
--- 607,613 ----
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
fi
])
!
*************** AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET],
*** 684,690 ****
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
fi
])
!
--- 684,690 ----
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
fi
])
!
*************** AC_DEFUN([AC_HEADER_UNORDERED_SET], [
*** 896,922 ****
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
fi
])
!
This is the list of names “reserved to the
--- 1,7 ----
This is the list of names “reserved to the
***************
*** 330,336 ****
for definitions. For C++, where we have member functions that can
be either inline definitions or declarations, keeping to this
standard allows all member function names for a given class to be
! aligned to the same margin, increasing readibility.
10. Invocation of member functions with "this->"
--- 330,336 ----
for definitions. For C++, where we have member functions that can
be either inline definitions or declarations, keeping to this
standard allows all member function names for a given class to be
! aligned to the same margin, increasing readability.
10. Invocation of member functions with "this->"
***************
*** 356,362 ****
12. Spacing under protected and private in class declarations:
space above, none below
! ie
public:
int foo;
--- 356,362 ----
12. Spacing under protected and private in class declarations:
space above, none below
! i.e.
public:
int foo;
***************
*** 368,374 ****
13. Spacing WRT return statements.
no extra spacing before returns, no parenthesis
! ie
}
return __ret;
--- 368,374 ----
13. Spacing WRT return statements.
no extra spacing before returns, no parenthesis
! i.e.
}
return __ret;
***************
*** 385,391 ****
14. Location of global variables.
! All global variables of class type, whether in the "user visable"
space (e.g., cin) or the implementation namespace, must be defined
as a character array with the appropriate alignment and then later
re-initialized to the correct value.
--- 385,391 ----
14. Location of global variables.
! All global variables of class type, whether in the "user visible"
space (e.g., cin) or the implementation namespace, must be defined
as a character array with the appropriate alignment and then later
re-initialized to the correct value.
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas04.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas04.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas04.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas04.html Thu Apr 10 22:53:15 2008
***************
*** 83,89 ****
(Examples of all these abound in the present code.)
doc/Makefile.am and defaults
to /usr/share/sgml/docbook/xsl-stylesheets.
libxslt.
doc/Makefile.am and defaults
to /usr/share/sgml/docbook/xsl-stylesheets.
libxslt.
Cannonical Writing Style
class template
function template
--- 153,162 ----
faq.xml - index to FAQ
api.xml - index to source level / API
! All *.txml files are template xml files, i.e., otherwise empty files with
the correct structure, suitable for filling in with new information.
! Canonical Writing Style
class template
function template
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas05.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas05.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01apas05.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01apas05.html Thu Apr 10 22:53:15 2008
***************
*** 210,216 ****
"export") is badly needed.
When building a shared library, the current compiler/linker cannot
! automatically generate the instantiatiations needed. This creates a
miserable situation; it means any time something is changed in the
library, before a shared library can be built someone must manually
copy the declarations of all templates that are needed by other parts
--- 210,216 ----
"export") is badly needed.
When building a shared library, the current compiler/linker cannot
! automatically generate the instantiations needed. This creates a
miserable situation; it means any time something is changed in the
library, before a shared library can be built someone must manually
copy the declarations of all templates that are needed by other parts
***************
*** 814,820 ****
by filebuf. These wrappings have not been completed, though there
is scaffolding in place.
! The encapulation of certain C header <cstdio> names presents an
interesting problem. It is possible to define an inline std::fprintf()
implemented in terms of the 'extern "C"' vfprintf(), but there is no
standard vfscanf() to use to implement std::fscanf(). It appears that
--- 814,820 ----
by filebuf. These wrappings have not been completed, though there
is scaffolding in place.
! The encapsulation of certain C header <cstdio> names presents an
interesting problem. It is possible to define an inline std::fprintf()
implemented in terms of the 'extern "C"' vfprintf(), but there is no
standard vfscanf() to use to implement std::fscanf(). It appears that
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch01.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch01.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch01.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch01.html Thu Apr 10 22:53:15 2008
*************** In this implementation the header names
*** 6101,6107 ****
Section Description Done Broken Missing Comments 2 General Utilities 2.1 Reference wrappers done 2.1.1 Additions to header <functional> synopsisdone 2.1.2 Class template reference_wrapperdone 2.1.2.1 reference_wrapper construct/copy/destroydone 2.1.2.2 reference_wrapper assignmentdone 2.1.2.3 reference_wrapper accessdone 2.1.2.4 reference_wrapper invocationdone 2.1.2.5 reference_wrapper helper functionsdone 2.2 Smart pointers done 2.2.1 Additions to header <memory> synopsisdone 2.2.2 Class bad_weak_ptrdone 2.2.3 Class template shared_ptrdone See Footnotes 2.2.3.1 shared_ptr constructorsdone 2.2.3.2 shared_ptr destructordone 2.2.3.3 shared_ptr assignmentdone 2.2.3.4 shared_ptr modifiersdone 2.2.3.5 shared_ptr observersdone 2.2.3.6 shared_ptr comparisondone 2.2.3.7 shared_ptr I/Odone 2.2.3.8 shared_ptr specialized algorithmsdone 2.2.3.9 shared_ptr castsdone 2.2.3.10 get_deleterdone 2.2.4 Class template weak_ptrdone 2.2.4.1 weak_ptr constructorsdone 2.2.4.2 weak_ptr destructordone 2.2.4.3 weak_ptr assignmentdone 2.2.4.4 weak_ptr modifiersdone 2.2.4.5 weak_ptr observersdone 2.2.4.6 weak_ptr comparisondone 2.2.4.7 weak_ptr specialized algorithmsdone 2.2.5 Class template enable_shared_from_thisdone 3 Function Objects 3.1 Definitions done 3.2 Additions to <functional> synopsisdone 3.3 Requirements done 3.4 Function return types done 3.5 Function template mem_fndone 3.6 Function object binders done 3.6.1 Class template is_bind_expressiondone 3.6.2 Class template is_placeholderdone 3.6.3 Function template binddone 3.6.4 Placeholders done 3.7 Polymorphic function wrappers done 3.7.1 Class bad_function_calldone 3.7.1.1 bad_function_call constructordone 3.7.2 Class template functiondone 3.7.2.1 function construct/copy/destroydone 3.7.2.2 function modifiersdone 3.7.2.3 function capacitydone 3.7.2.4 function invocationdone 3.7.2.5 function target accessdone 3.7.2.6 undefined operators done 3.7.2.7 null pointer comparison operators done 3.7.2.8 specialized algorithms done 4 Metaprogramming and type traits 4.1 Requirements done 4.2 Header <type_traits> synopsisdone 4.3 Helper classes done 4.4 General Requirements done 4.5 Unary Type Traits done 4.5.1 Primary Type Categories done 4.5.2 Composite type traits done 4.5.3 Type properties done 4.6 Relationships between types done 4.7 Transformations between types done 4.7.1 Const-volatile modifications done 4.7.2 Reference modifications done 4.7.3 Array modifications done 4.7.4 Pointer modifications done 4.8 Other transformations done 4.9 Implementation requirements done 5 Numerical Facilities 5.1 Random number generation done 5.1.1 Requirements done 5.1.2 Header <random> synopsisdone 5.1.3 Class template variate_generatordone 5.1.4 Random number engine class templates done 5.1.4.1 Class template linear_congruentialdone 5.1.4.2 Class template mersenne_twisterdone 5.1.4.3 Class template subtract_with_carrydone 5.1.4.4 Class template subtract_with_carry_01done 5.1.4.5 Class template discard_blockdone 5.1.4.6 Class template xor_combinedone operator()() per N2079 5.1.5 Engines with predefined parameters done 5.1.6 Class random_devicedone 5.1.7 Random distribution class templates done 5.1.7.1 Class template uniform_intdone 5.1.7.2 Class bernoulli_distributiondone 5.1.7.3 Class template geometric_distributiondone 5.1.7.4 Class template poisson_distributiondone 5.1.7.5 Class template binomial_distributiondone 5.1.7.6 Class template uniform_realdone 5.1.7.7 Class template exponential_distributiondone 5.1.7.8 Class template normal_distributiondone 5.1.7.9 Class template gamma_distributiondone 5.2 Mathematical special functions done 5.2.1 Additions to header <cmath> synopsisdone 5.2.1.1 associated Laguerre polynomials done 5.2.1.2 associated Legendre functions done 5.2.1.3 beta function done 5.2.1.4 (complete) elliptic integral of the first kind done 5.2.1.5 (complete) elliptic integral of the second kind done 5.2.1.6 (complete) elliptic integral of the third kind done 5.2.1.7 confluent hypergeometric functions done 5.2.1.8 regular modified cylindrical Bessel functions done 5.2.1.9 cylindrical Bessel functions (of the first kind) done 5.2.1.10 irregular modified cylindrical Bessel functions done 5.2.1.11 cylindrical Neumann functions done 5.2.1.12 (incomplete) elliptic integral of the first kind done 5.2.1.13 (incomplete) elliptic integral of the second kind done 5.2.1.14 (incomplete) elliptic integral of the third kind done 5.2.1.15 exponential integral done 5.2.1.16 Hermite polynomials done 5.2.1.17 hypergeometric functions done 5.2.1.18 Laguerre polynomials done 5.2.1.19 Legendre polynomials done 5.2.1.20 Riemann zeta function done 5.2.1.21 spherical Bessel functions (of the first kind) done 5.2.1.22 spherical associated Legendre functions done 5.2.1.23 spherical Neumann functions done 5.2.2 Additions to header <math.h> synopsisdone 6 Containers 6.1 Tuple types done 6.1.1 Header <tuple> synopsisdone 6.1.2 Additions to header <utility> synopsisdone 6.1.3 Class template tupledone 6.1.3.1 Construction done 6.1.3.2 Tuple creation functions done 6.1.3.3 Tuple helper classes done 6.1.3.4 Element access done 6.1.3.5 Relational operators done 6.1.4 Pairs done 6.2 Fixed size array done 6.2.1 Header <array> synopsisdone 6.2.2 Class template arraydone 6.2.2.1 array constructors, copy, and assignmentdone 6.2.2.2 array specialized algorithmsdone 6.2.2.3 array sizedone 6.2.2.4 Zero sized arraysdone 6.2.2.5 Tuple interface to class template arraydone 6.3 Unordered associative containers done 6.3.1 Unordered associative container requirements done 6.3.1.1 Exception safety guarantees done 6.3.2 Additions to header <functional> synopsisdone 6.3.3 Class template hashdone 6.3.4 Unordered associative container classes done 6.3.4.1 Header <unordered_set> synopsisdone 6.3.4.2 Header <unordered_map> synopsisdone 6.3.4.3 Class template unordered_setdone 6.3.4.3.1 unordered_set constructorsdone 6.3.4.3.2 unordered_set swapdone 6.3.4.4 Class template unordered_mapdone 6.3.4.4.1 unordered_map constructorsdone 6.3.4.4.2 unordered_map element accessdone 6.3.4.4.3 unordered_map swapdone 6.3.4.5 Class template unordered_multisetdone 6.3.4.5.1 unordered_multiset constructorsdone 6.3.4.5.2 unordered_multiset swapdone 6.3.4.6 Class template unordered_multimapdone 6.3.4.6.1 unordered_multimap constructorsdone 6.3.4.6.2 unordered_multimap swapdone 7 Regular Expressions 7.1 Definitions missing 7.2 Requirements missing 7.3 Regular expressions summary missing 7.4 Header <regex> synopsis missing 7.5 Namespace tr1::regex_constants missing 7.5.1 Bitmask Type syntax_option_type missing 7.5.2 Bitmask Type regex_constants::match_flag_type missing 7.5.3 Implementation defined error_type missing 7.6 Class regex_error missing 7.7 Class template regex_traits missing 7.8 Class template basic_regex missing 7.8.1 basic_regex constants missing 7.8.2 basic_regex constructors missing 7.8.3 basic_regex assign missing 7.8.4 basic_regex constant operations missing 7.8.5 basic_regex locale missing 7.8.6 basic_regex swap missing 7.8.7 basic_regex non-member functions missing 7.8.7.1 basic_regex non-member swap missing 7.9 Class template sub_match missing 7.9.1 sub_match members missing 7.9.2 sub_match non-member operators missing 7.10 Class template match_results missing 7.10.1 match_results constructors missing 7.10.2 match_results size missing 7.10.3 match_results element access missing 7.10.4 match_results formatting missing 7.10.5 match_results allocator missing 7.10.6 match_results swap missing 7.11 Regular expression algorithms missing 7.11.1 exceptions missing 7.11.2 regex_match missing 7.11.3 regex_search missing 7.11.4 regex_replace missing 7.12 Regular expression Iterators missing 7.12.1 Class template regex_iterator missing 7.12.1.1 regex_iterator constructors missing 7.12.1.2 regex_iterator comparisons missing 7.12.1.3 regex_iterator dereference missing 7.12.1.4 regex_iterator increment missing 7.12.2 Class template regex_token_iterator missing 7.12.2.1 regex_token_iterator constructors missing 7.12.2.2 regex_token_iterator comparisons missing 7.12.2.3 regex_token_iterator dereference missing 7.12.2.4 regex_token_iterator increment missing 7.13 Modified ECMAScript regular expression grammar missing 8 C Compatibility 8.1 Additions to header <complex>done 8.1.1 Synopsis done 8.1.2 Function acosdone 8.1.3 Function asindone 8.1.4 Function atandone 8.1.5 Function acoshdone 8.1.6 Function asinhdone 8.1.7 Function atanhdone 8.1.8 Function fabsdone 8.1.9 Additional Overloads done 8.2 Header <ccomplex> missing DR 551 8.3 Header <complex.h> missing DR 551 8.4 Additions to header <cctype>done 8.4.1 Synopsis done 8.4.2 Function isblankdone 8.5 Additions to header <ctype.h>done 8.6 Header <cfenv>done 8.6.1 Synopsis done 8.6.2 Definitions done 8.7 Header <fenv.h>done 8.8 Additions to header <cfloat>done 8.9 Additions to header <float.h>done 8.10 Additions to header <ios> missing 8.10.1 Synopsis missing 8.10.2 Function hexfloat missing 8.11 Header <cinttypes>done 8.11.1 Synopsis done DR 557 8.11.2 Definitions done 8.12 Header <inttypes.h>done 8.13 Additions to header <climits>done 8.14 Additions to header <limits.h>done 8.15 Additions to header <locale> missing 8.16 Additions to header <cmath>done 8.16.1 Synopsis done 8.16.2 Definitions done 8.16.3 Function template definitions done 8.16.4 Additional overloads done DR 568; DR 550 8.17 Additions to header <math.h>done 8.18 Additions to header <cstdarg>done 8.19 Additions to header <stdarg.h>done 8.20 The header <cstdbool>done 8.21 The header <stdbool.h>done 8.22 The header <cstdint>done 8.22.1 Synopsis done 8.22.2 Definitions done 8.23 The header <stdint.h>done 8.24 Additions to header <cstdio>done 8.24.1 Synopsis done 8.24.2 Definitions done 8.24.3 Additional format specifiers done C library responsibility 8.24.4 Additions to header <stdio.h>done 8.25 Additions to header <cstdlib>done 8.25.1 Synopsis done 8.25.2 Definitions done 8.25.3 Function absdone 8.25.4 Function divdone 8.26 Additions to header <stdlib.h>done 8.27 Header <ctgmath>done DR 551 8.28 Header <tgmath.h>done DR 551 8.29 Additions to header <ctime>done C library responsibility 8.30 Additions to header <cwchar>done 8.30.1 Synopsis done 8.30.2 Definitions done 8.30.3 Additional wide format specifiers done C library responsibility 8.31 Additions to header <wchar.h>done 8.32 Additions to header <cwctype>done 8.32.1 Synopsis done 8.32.2 Function iswblankdone 8.33 Additions to header <wctype.h>done Section Description Done Broken Missing Comments 2 General Utilities 2.1 Reference wrappers done 2.1.1 Additions to header <functional> synopsisdone 2.1.2 Class template reference_wrapperdone 2.1.2.1 reference_wrapper construct/copy/destroydone 2.1.2.2 reference_wrapper assignmentdone 2.1.2.3 reference_wrapper accessdone 2.1.2.4 reference_wrapper invocationdone 2.1.2.5 reference_wrapper helper functionsdone 2.2 Smart pointers done 2.2.1 Additions to header <memory> synopsisdone 2.2.2 Class bad_weak_ptrdone 2.2.3 Class template shared_ptrdone See Footnotes 2.2.3.1 shared_ptr constructorsdone 2.2.3.2 shared_ptr destructordone 2.2.3.3 shared_ptr assignmentdone 2.2.3.4 shared_ptr modifiersdone 2.2.3.5 shared_ptr observersdone 2.2.3.6 shared_ptr comparisondone 2.2.3.7 shared_ptr I/Odone 2.2.3.8 shared_ptr specialized algorithmsdone 2.2.3.9 shared_ptr castsdone 2.2.3.10 get_deleterdone 2.2.4 Class template weak_ptrdone 2.2.4.1 weak_ptr constructorsdone 2.2.4.2 weak_ptr destructordone 2.2.4.3 weak_ptr assignmentdone 2.2.4.4 weak_ptr modifiersdone 2.2.4.5 weak_ptr observersdone 2.2.4.6 weak_ptr comparisondone 2.2.4.7 weak_ptr specialized algorithmsdone 2.2.5 Class template enable_shared_from_thisdone 3 Function Objects 3.1 Definitions done 3.2 Additions to <functional> synopsisdone 3.3 Requirements done 3.4 Function return types done 3.5 Function template mem_fndone 3.6 Function object binders done 3.6.1 Class template is_bind_expressiondone 3.6.2 Class template is_placeholderdone 3.6.3 Function template binddone 3.6.4 Placeholders done 3.7 Polymorphic function wrappers done 3.7.1 Class bad_function_calldone 3.7.1.1 bad_function_call constructordone 3.7.2 Class template functiondone 3.7.2.1 function construct/copy/destroydone 3.7.2.2 function modifiersdone 3.7.2.3 function capacitydone 3.7.2.4 function invocationdone 3.7.2.5 function target accessdone 3.7.2.6 undefined operators done 3.7.2.7 null pointer comparison operators done 3.7.2.8 specialized algorithms done 4 Metaprogramming and type traits 4.1 Requirements done 4.2 Header <type_traits> synopsisdone 4.3 Helper classes done 4.4 General Requirements done 4.5 Unary Type Traits done 4.5.1 Primary Type Categories done 4.5.2 Composite type traits done 4.5.3 Type properties done 4.6 Relationships between types done 4.7 Transformations between types done 4.7.1 Const-volatile modifications done 4.7.2 Reference modifications done 4.7.3 Array modifications done 4.7.4 Pointer modifications done 4.8 Other transformations done 4.9 Implementation requirements done 5 Numerical Facilities 5.1 Random number generation done 5.1.1 Requirements done 5.1.2 Header <random> synopsisdone 5.1.3 Class template variate_generatordone 5.1.4 Random number engine class templates done 5.1.4.1 Class template linear_congruentialdone 5.1.4.2 Class template mersenne_twisterdone 5.1.4.3 Class template subtract_with_carrydone 5.1.4.4 Class template subtract_with_carry_01done 5.1.4.5 Class template discard_blockdone 5.1.4.6 Class template xor_combinedone operator()() per N2079 5.1.5 Engines with predefined parameters done 5.1.6 Class random_devicedone 5.1.7 Random distribution class templates done 5.1.7.1 Class template uniform_intdone 5.1.7.2 Class bernoulli_distributiondone 5.1.7.3 Class template geometric_distributiondone 5.1.7.4 Class template poisson_distributiondone 5.1.7.5 Class template binomial_distributiondone 5.1.7.6 Class template uniform_realdone 5.1.7.7 Class template exponential_distributiondone 5.1.7.8 Class template normal_distributiondone 5.1.7.9 Class template gamma_distributiondone 5.2 Mathematical special functions done 5.2.1 Additions to header <cmath> synopsisdone 5.2.1.1 associated Laguerre polynomials done 5.2.1.2 associated Legendre functions done 5.2.1.3 beta function done 5.2.1.4 (complete) elliptic integral of the first kind done 5.2.1.5 (complete) elliptic integral of the second kind done 5.2.1.6 (complete) elliptic integral of the third kind done 5.2.1.7 confluent hypergeometric functions done 5.2.1.8 regular modified cylindrical Bessel functions done 5.2.1.9 cylindrical Bessel functions (of the first kind) done 5.2.1.10 irregular modified cylindrical Bessel functions done 5.2.1.11 cylindrical Neumann functions done 5.2.1.12 (incomplete) elliptic integral of the first kind done 5.2.1.13 (incomplete) elliptic integral of the second kind done 5.2.1.14 (incomplete) elliptic integral of the third kind done 5.2.1.15 exponential integral done 5.2.1.16 Hermite polynomials done 5.2.1.17 hypergeometric functions done 5.2.1.18 Laguerre polynomials done 5.2.1.19 Legendre polynomials done 5.2.1.20 Riemann zeta function done 5.2.1.21 spherical Bessel functions (of the first kind) done 5.2.1.22 spherical associated Legendre functions done 5.2.1.23 spherical Neumann functions done 5.2.2 Additions to header <math.h> synopsisdone 6 Containers 6.1 Tuple types done 6.1.1 Header <tuple> synopsisdone 6.1.2 Additions to header <utility> synopsisdone 6.1.3 Class template tupledone 6.1.3.1 Construction done 6.1.3.2 Tuple creation functions done 6.1.3.3 Tuple helper classes done 6.1.3.4 Element access done 6.1.3.5 Relational operators done 6.1.4 Pairs done 6.2 Fixed size array done 6.2.1 Header <array> synopsisdone 6.2.2 Class template arraydone 6.2.2.1 array constructors, copy, and assignmentdone 6.2.2.2 array specialized algorithmsdone 6.2.2.3 array sizedone 6.2.2.4 Zero sized arraysdone 6.2.2.5 Tuple interface to class template arraydone 6.3 Unordered associative containers done 6.3.1 Unordered associative container requirements done 6.3.1.1 Exception safety guarantees done 6.3.2 Additions to header <functional> synopsisdone 6.3.3 Class template hashdone 6.3.4 Unordered associative container classes done 6.3.4.1 Header <unordered_set> synopsisdone 6.3.4.2 Header <unordered_map> synopsisdone 6.3.4.3 Class template unordered_setdone 6.3.4.3.1 unordered_set constructorsdone 6.3.4.3.2 unordered_set swapdone 6.3.4.4 Class template unordered_mapdone 6.3.4.4.1 unordered_map constructorsdone 6.3.4.4.2 unordered_map element accessdone 6.3.4.4.3 unordered_map swapdone 6.3.4.5 Class template unordered_multisetdone 6.3.4.5.1 unordered_multiset constructorsdone 6.3.4.5.2 unordered_multiset swapdone 6.3.4.6 Class template unordered_multimapdone 6.3.4.6.1 unordered_multimap constructorsdone 6.3.4.6.2 unordered_multimap swapdone 7 Regular Expressions 7.1 Definitions missing 7.2 Requirements missing 7.3 Regular expressions summary missing 7.4 Header <regex> synopsis missing 7.5 Namespace tr1::regex_constants missing 7.5.1 Bitmask Type syntax_option_type missing 7.5.2 Bitmask Type regex_constants::match_flag_type missing 7.5.3 Implementation defined error_type missing 7.6 Class regex_error missing 7.7 Class template regex_traits missing 7.8 Class template basic_regex missing 7.8.1 basic_regex constants missing 7.8.2 basic_regex constructors missing 7.8.3 basic_regex assign missing 7.8.4 basic_regex constant operations missing 7.8.5 basic_regex locale missing 7.8.6 basic_regex swap missing 7.8.7 basic_regex non-member functions missing 7.8.7.1 basic_regex non-member swap missing 7.9 Class template sub_match missing 7.9.1 sub_match members missing 7.9.2 sub_match non-member operators missing 7.10 Class template match_results missing 7.10.1 match_results constructors missing 7.10.2 match_results size missing 7.10.3 match_results element access missing 7.10.4 match_results formatting missing 7.10.5 match_results allocator missing 7.10.6 match_results swap missing 7.11 Regular expression algorithms missing 7.11.1 exceptions missing 7.11.2 regex_match missing 7.11.3 regex_search missing 7.11.4 regex_replace missing 7.12 Regular expression Iterators missing 7.12.1 Class template regex_iterator missing 7.12.1.1 regex_iterator constructors missing 7.12.1.2 regex_iterator comparisons missing 7.12.1.3 regex_iterator dereference missing 7.12.1.4 regex_iterator increment missing 7.12.2 Class template regex_token_iterator missing 7.12.2.1 regex_token_iterator constructors missing 7.12.2.2 regex_token_iterator comparisons missing 7.12.2.3 regex_token_iterator dereference missing 7.12.2.4 regex_token_iterator increment missing 7.13 Modified ECMAScript regular expression grammar missing 8 C Compatibility 8.1 Additions to header <complex>done 8.1.1 Synopsis done 8.1.2 Function acosdone 8.1.3 Function asindone 8.1.4 Function atandone 8.1.5 Function acoshdone 8.1.6 Function asinhdone 8.1.7 Function atanhdone 8.1.8 Function fabsdone 8.1.9 Additional Overloads done 8.2 Header <ccomplex> missing DR 551 8.3 Header <complex.h> missing DR 551 8.4 Additions to header <cctype>done 8.4.1 Synopsis done 8.4.2 Function isblankdone 8.5 Additions to header <ctype.h>done 8.6 Header <cfenv>done 8.6.1 Synopsis done 8.6.2 Definitions done 8.7 Header <fenv.h>done 8.8 Additions to header <cfloat>done 8.9 Additions to header <float.h>done 8.10 Additions to header <ios> missing 8.10.1 Synopsis missing 8.10.2 Function hexfloat missing 8.11 Header <cinttypes>done 8.11.1 Synopsis done DR 557 8.11.2 Definitions done 8.12 Header <inttypes.h>done 8.13 Additions to header <climits>done 8.14 Additions to header <limits.h>done 8.15 Additions to header <locale> missing 8.16 Additions to header <cmath>done 8.16.1 Synopsis done 8.16.2 Definitions done 8.16.3 Function template definitions done 8.16.4 Additional overloads done DR 568; DR 550 8.17 Additions to header <math.h>done 8.18 Additions to header <cstdarg>done 8.19 Additions to header <stdarg.h>done 8.20 The header <cstdbool>done 8.21 The header <stdbool.h>done 8.22 The header <cstdint>done 8.22.1 Synopsis done 8.22.2 Definitions done 8.23 The header <stdint.h>done 8.24 Additions to header <cstdio>done 8.24.1 Synopsis done 8.24.2 Definitions done 8.24.3 Additional format specifiers done C library responsibility 8.24.4 Additions to header <stdio.h>done 8.25 Additions to header <cstdlib>done 8.25.1 Synopsis done 8.25.2 Definitions done 8.25.3 Function absdone 8.25.4 Function divdone 8.26 Additions to header <stdlib.h>done 8.27 Header <ctgmath>done DR 551 8.28 Header <tgmath.h>done DR 551 8.29 Additions to header <ctime>done C library responsibility 8.30 Additions to header <cwchar>done 8.30.1 Synopsis done 8.30.2 Definitions done 8.30.3 Additional wide format specifiers done C library responsibility 8.31 Additions to header <wchar.h>done 8.32 Additions to header <cwctype>done 8.32.1 Synopsis done 8.32.2 Function iswblankdone 8.33 Additions to header <wctype.h>done Section Description Done Broken Missing Comments 20 General Utilities 20.2 Utility Components incomplete 20.2.1 Operators partial 20.2.2 forward/move helpers partial 20.2.3 Pairs done 20.3 Header <tuple> synopsisdone 20.3.1 Class template tupledone 20.3.1.1 Construction done 20.3.1.2 Tuple creation functions done 20.3.1.3 Tuple helper classes done 20.3.1.4 Element access done 20.3.1.5 Relational operators done 20.4 Metaprogramming and type traits 20.4.1 Requirements done 20.4.2 Header <type_traits> synopsisdone 20.4.3 Helper classes done 20.4.4 General Requirements done 20.4.5 Unary Type Traits done 20.4.5.1 Primary Type Categories done 20.4.5.2 Composite type traits done 20.4.5.3 Type properties done 20.4.6 Relationships between types done 20.4.7 Transformations between types done 20.4.7.1 Const-volatile modifications done 20.4.7.2 Reference modifications done 20.4.7.3 Array modifications done 20.4.7.4 Pointer modifications done 20.4.8 Other transformations done 20.4.9 Implementation requirements done 20.5 Function Objects done 20.5 Additions to header <functional> synopsisdone 20.5.1 Definitions done 20.5.2 Requirements done 20.5.3 Base done 20.5.4 Function return types done 20.5.5 Class template reference_wrapperdone 20.5.5.1 reference_wrapper construct/copy/destroydone 20.5.5.2 reference_wrapper assignmentdone 20.5.5.3 reference_wrapper accessdone 20.5.5.4 reference_wrapper invocationdone 20.5.5.5 reference_wrapper helper functionsdone 20.5.14 Function template mem_fndone 20.5.11 Template function bind done 20.5.11.1 Function object binders done 20.5.11.1.1 Class template is_bind_expressiondone 20.5.11.1.2 Class template is_placeholderdone 20.5.11.1.3 Function template binddone 20.5.11.1.4 Placeholders done 20.5.15 Polymorphic function wrappers done 20.5.15.1 Class bad_function_calldone 20.5.15.1.1 bad_function_call constructordone 20.5.15.2 Class template functiondone 20.5.15.2.1 function construct/copy/destroydone 20.5.15.2.2 function modifiersdone 20.5.15.2.3 function capacitydone 20.5.15.2.4 function invocationdone 20.5.15.2.5 function target accessdone 20.5.15.2.7 null pointer comparison operators done 20.5.15.2.8 specialized algorithms done 20.5.16 Class template hashdone 20.6 Additions to header <memory> synopsis partial missing unique_ptr20.6.5 Class template unique_ptr missing 20.6.6 Smart pointers done 20.6.6.1 Class bad_weak_ptrdone 20.6.6.2 Class template shared_ptrdone See Footnotes. 20.6.6.2.1 shared_ptr constructorsdone 20.6.6.2.2 shared_ptr destructordone 20.6.6.2.3 shared_ptr assignmentdone 20.6.6.2.4 shared_ptr modifiersdone 20.6.6.2.5 shared_ptr observersdone 20.6.6.2.6 shared_ptr creationdone
N2351
! 20.6.6.2.7 shared_ptr comparisondone 20.6.6.2.8 shared_ptr I/Odone 20.6.6.2.9 shared_ptr specialized algorithmsdone 20.6.6.2.10 shared_ptr castsdone 20.6.6.2.11 get_deleterdone 20.6.6.3 Class template weak_ptrdone 20.6.6.3.1 weak_ptr constructorsdone 20.6.6.3.2 weak_ptr destructordone 20.6.6.3.3 weak_ptr assignmentdone 20.6.6.3.4 weak_ptr modifiersdone 20.6.6.3.5 weak_ptr observersdone 20.6.6.3.6 weak_ptr comparisondone 20.6.6.3.7 weak_ptr specialized algorithmsdone 20.6.6.4 Class template enable_shared_from_thisdone 23 Containers 23.2.1 Header <array> synopsisdone 23.2.1 Class template array done 23.2.1.1 array constructors, copy, and assignmentdone 23.2.1.2 array specialized algorithmsdone 23.2.1.3 array sizedone 23.2.1.4 array datadone 23.2.1.5 Zero sized arraysdone 23.2.1.6 Tuple interface to class template arraydone 23.4 Unordered associative containers done 23.4.1 Class template unordered_mapdone 23.4.1.1 unordered_map constructorsdone 23.4.1.2 unordered_map element accessdone 23.4.1.3 unordered_map swapdone 23.4.2 Class template unordered_multimapdone 23.4.2.1 unordered_multimap constructorsdone 23.4.2.2 unordered_multimap swapdone 23.4.3 Class template unordered_setdone 23.4.3.1 unordered_set constructorsdone 23.4.3.2 unordered_set swapdone 23.4.4 Class template unordered_multisetdone 23.4.4.1 unordered_multiset constructorsdone 23.4.4.2 unordered_multiset swapdone 26 Numerics 26.4 Random number generation done 26.4.1 Requirements done 26.4.2 Header <random> synopsis partial 26.4.3 Random number engine class templates done 26.4.3.1 Class template linear_congruential_enginedone 26.4.3.2 Class template mersenne_twister_enginedone 26.4.3.3 Class template subtract_with_carry_enginedone 26.4.4 Random number engine adaptor class templates done 26.4.4.1 Class template discard_block_enginedone 26.4.4.2 Class template independent_bits_enginedone 26.4.4.3 Class template shuffle_order_enginedone 26.4.4.4 Class template xor_combine_enginedone operator()() per N2079 26.4.5 Engines and engine adaptors with predefined parameters done 26.4.6 Class random_devicedone 26.4.7 Utilities done 26.4.7.1 Class seed_seq missing 26.4.7.2 Function template generate_cannonical missing 26.4.8 Random number generation class templates done 26.4.8.1 Uniform distributions partial 26.4.8.1 Class template uniform_int_distribution missing 26.4.8.1 Class template uniform_real_distribution missing 26.4.8.2 Bernoulli distributions partial 26.4.8.2.1 Class bernoulli_distributiondone 26.4.8.2.2 Class template binomial_distributiondone 26.4.8.2.3 Class template geometric_distributiondone 26.4.8.2.4 Class template negative_binomial_distribution missing 26.4.8.3 Poisson distributions partial 26.4.8.3.1 Class template poisson_distributiondone 26.4.8.3.2 Class template exponential_distributiondone 26.4.8.3.3 Class template gamma_distributiondone 26.4.8.3.4 Class template weibull_distribution missing 26.4.8.3.5 Class template extreme_value_distribution missing 26.4.8.4 Normal distributions partial 26.4.8.4.1 Class template normal_distributiondone 26.4.8.4.2 Class template lognormal_distribution missing 26.4.8.4.3 Class template chi_squared_distribution missing 26.4.8.4.4 Class template cauchy_distribution missing 26.4.8.4.5 Class template fisher_f_distribution missing 26.4.8.4.6 Class template student_t_distribution missing 26.4.8.5 Sampling distributions missing 26.4.8.5.1 Class template discrete_distribution missing 26.4.8.5.1 Class template piecewise_constant_distribution missing 26.4.8.5.1 Class template general_pdf_distribution missing 28 Regular Expressions 28.1 Definitions missing 28.2 Requirements missing 28.3 Regular expressions summary missing 28.4 Header <regex> synopsis missing 28.5 Namespace tr1::regex_constants missing 28.5.1 Bitmask Type syntax_option_type missing 28.5.2 Bitmask Type regex_constants::match_flag_type missing 28.5.3 Implementation defined error_type missing 28.6 Class regex_error missing 28.7 Class template regex_traits missing 28.8 Class template basic_regex missing 28.8.1 basic_regex constants missing 28.8.2 basic_regex constructors missing 28.8.3 basic_regex assign missing 28.8.4 basic_regex constant operations missing 28.8.5 basic_regex locale missing 28.8.6 basic_regex swap missing 28.8.7 basic_regex non-member functions missing 28.8.7.1 basic_regex non-member swap missing 28.9 Class template sub_match missing 28.9.1 sub_match members missing 28.9.2 sub_match non-member operators missing 28.10 Class template match_results missing 28.10.1 match_results constructors missing 28.10.2 match_results size missing 28.10.3 match_results element access missing 28.10.4 match_results formatting missing 28.10.5 match_results allocator missing 28.10.6 match_results swap missing 28.11 Regular expression algorithms missing 28.11.1 exceptions missing 28.11.2 regex_match missing 28.11.3 regex_search missing 28.11.4 regex_replace missing 28.12 Regular expression Iterators missing 28.12.1 Class template regex_iterator missing 28.12.1.1 regex_iterator constructors missing 28.12.1.2 regex_iterator comparisons missing 28.12.1.3 regex_iterator dereference missing 28.12.1.4 regex_iterator increment missing 28.12.2 Class template regex_token_iterator missing 28.12.2.1 regex_token_iterator constructors missing 28.12.2.2 regex_token_iterator comparisons missing 28.12.2.3 regex_token_iterator dereference missing 28.12.2.4 regex_token_iterator increment missing 28.13 Modified ECMAScript regular expression grammar missing C C Compatibility C2.1 Additions to header <complex>done C2.1.1 Synopsis done C2.1.2 Function acosdone C2.1.3 Function asindone C2.1.4 Function atandone C2.1.5 Function acoshdone C2.1.6 Function asinhdone C2.1.7 Function atanhdone C2.1.8 Function fabsdone C2.1.9 Additional Overloads done C2.2 Header <ccomplex> missing DR 551 C2.3 Header <complex.h> missing DR 551 C2.4 Additions to header <cctype>done C2.4.1 Synopsis done C2.4.2 Function isblankdone C2.5 Additions to header <ctype.h>done C2.6 Header <cfenv>done C2.6.1 Synopsis done C2.6.2 Definitions done C2.7 Header <fenv.h>done C2.8 Additions to header <cfloat>done C2.9 Additions to header <float.h>done C2.10 Additions to header <ios> missing C2.10.1 Synopsis missing C2.10.2 Function hexfloat missing C2.11 Header <cinttypes>done C2.11.1 Synopsis done DR 557 C2.11.2 Definitions done C2.12 Header <inttypes.h>done C2.13 Additions to header <climits>done C2.14 Additions to header <limits.h>done C2.15 Additions to header <locale> missing C2.16 Additions to header <cmath>done C2.16.1 Synopsis done C2.16.2 Definitions done C2.16.3 Function template definitions done C2.16.4 Additional overloads done DR 568; DR 550 C2.17 Additions to header <math.h>done C2.18 Additions to header <cstdarg>done C2.19 Additions to header <stdarg.h>done C2.20 The header <cstdbool>done C2.21 The header <stdbool.h>done C2.22 The header <cstdint>done C2.22.1 Synopsis done C2.22.2 Definitions done C2.23 The header <stdint.h>done C2.24 Additions to header <cstdio>done C2.24.1 Synopsis done C2.24.2 Definitions done C2.24.3 Additional format specifiers done C library responsibility C2.24.4 Additions to header <stdio.h>done C2.25 Additions to header <cstdlib>done C2.25.1 Synopsis done C2.25.2 Definitions done C2.25.3 Function absdone C2.25.4 Function divdone C2.26 Additions to header <stdlib.h>done C2.27 Header <ctgmath>done DR 551 C2.28 Header <tgmath.h>done DR 551 C2.29 Additions to header <ctime>done C library responsibility C2.30 Additions to header <cwchar>done C2.30.1 Synopsis done C2.30.2 Definitions done C2.30.3 Additional wide format specifiers done C library responsibility C2.31 Additions to header <wchar.h>done C2.32 Additions to header <cwctype>done C2.32.1 Synopsis done C2.32.2 Function iswblankdone C2.33 Additions to header <wctype.h>done D Compatibility Features D.6 Old iostream members done D.8 Binders done 33911 D.9 Class template auto_ptrdone 33911 Section Description Done Broken Missing Comments 20 General Utilities 20.2 Utility Components incomplete 20.2.1 Operators partial 20.2.2 forward/move helpers partial 20.2.3 Pairs done 20.3 Header <tuple> synopsisdone 20.3.1 Class template tupledone 20.3.1.1 Construction done 20.3.1.2 Tuple creation functions done 20.3.1.3 Tuple helper classes done 20.3.1.4 Element access done 20.3.1.5 Relational operators done 20.4 Metaprogramming and type traits 20.4.1 Requirements done 20.4.2 Header <type_traits> synopsisdone 20.4.3 Helper classes done 20.4.4 General Requirements done 20.4.5 Unary Type Traits done 20.4.5.1 Primary Type Categories done 20.4.5.2 Composite type traits done 20.4.5.3 Type properties done 20.4.6 Relationships between types done 20.4.7 Transformations between types done 20.4.7.1 Const-volatile modifications done 20.4.7.2 Reference modifications done 20.4.7.3 Array modifications done 20.4.7.4 Pointer modifications done 20.4.8 Other transformations done 20.4.9 Implementation requirements done 20.5 Function Objects done 20.5 Additions to header <functional> synopsisdone 20.5.1 Definitions done 20.5.2 Requirements done 20.5.3 Base done 20.5.4 Function return types done 20.5.5 Class template reference_wrapperdone 20.5.5.1 reference_wrapper construct/copy/destroydone 20.5.5.2 reference_wrapper assignmentdone 20.5.5.3 reference_wrapper accessdone 20.5.5.4 reference_wrapper invocationdone 20.5.5.5 reference_wrapper helper functionsdone 20.5.14 Function template mem_fndone 20.5.11 Template function bind done 20.5.11.1 Function object binders done 20.5.11.1.1 Class template is_bind_expressiondone 20.5.11.1.2 Class template is_placeholderdone 20.5.11.1.3 Function template binddone 20.5.11.1.4 Placeholders done 20.5.15 Polymorphic function wrappers done 20.5.15.1 Class bad_function_calldone 20.5.15.1.1 bad_function_call constructordone 20.5.15.2 Class template functiondone 20.5.15.2.1 function construct/copy/destroydone 20.5.15.2.2 function modifiersdone 20.5.15.2.3 function capacitydone 20.5.15.2.4 function invocationdone 20.5.15.2.5 function target accessdone 20.5.15.2.7 null pointer comparison operators done 20.5.15.2.8 specialized algorithms done 20.5.16 Class template hashdone 20.6 Additions to header <memory> synopsis partial missing unique_ptr20.6.5 Class template unique_ptr missing 20.6.6 Smart pointers done 20.6.6.1 Class bad_weak_ptrdone 20.6.6.2 Class template shared_ptrdone See Footnotes. 20.6.6.2.1 shared_ptr constructorsdone 20.6.6.2.2 shared_ptr destructordone 20.6.6.2.3 shared_ptr assignmentdone 20.6.6.2.4 shared_ptr modifiersdone 20.6.6.2.5 shared_ptr observersdone 20.6.6.2.6 shared_ptr creationdone
N2351
! 20.6.6.2.7 shared_ptr comparisondone 20.6.6.2.8 shared_ptr I/Odone 20.6.6.2.9 shared_ptr specialized algorithmsdone 20.6.6.2.10 shared_ptr castsdone 20.6.6.2.11 get_deleterdone 20.6.6.3 Class template weak_ptrdone 20.6.6.3.1 weak_ptr constructorsdone 20.6.6.3.2 weak_ptr destructordone 20.6.6.3.3 weak_ptr assignmentdone 20.6.6.3.4 weak_ptr modifiersdone 20.6.6.3.5 weak_ptr observersdone 20.6.6.3.6 weak_ptr comparisondone 20.6.6.3.7 weak_ptr specialized algorithmsdone 20.6.6.4 Class template enable_shared_from_thisdone 23 Containers 23.2.1 Header <array> synopsisdone 23.2.1 Class template array done 23.2.1.1 array constructors, copy, and assignmentdone 23.2.1.2 array specialized algorithmsdone 23.2.1.3 array sizedone 23.2.1.4 array datadone 23.2.1.5 Zero sized arraysdone 23.2.1.6 Tuple interface to class template arraydone 23.4 Unordered associative containers done 23.4.1 Class template unordered_mapdone 23.4.1.1 unordered_map constructorsdone 23.4.1.2 unordered_map element accessdone 23.4.1.3 unordered_map swapdone 23.4.2 Class template unordered_multimapdone 23.4.2.1 unordered_multimap constructorsdone 23.4.2.2 unordered_multimap swapdone 23.4.3 Class template unordered_setdone 23.4.3.1 unordered_set constructorsdone 23.4.3.2 unordered_set swapdone 23.4.4 Class template unordered_multisetdone 23.4.4.1 unordered_multiset constructorsdone 23.4.4.2 unordered_multiset swapdone 26 Numerics 26.4 Random number generation done 26.4.1 Requirements done 26.4.2 Header <random> synopsis partial 26.4.3 Random number engine class templates done 26.4.3.1 Class template linear_congruential_enginedone 26.4.3.2 Class template mersenne_twister_enginedone 26.4.3.3 Class template subtract_with_carry_enginedone 26.4.4 Random number engine adaptor class templates done 26.4.4.1 Class template discard_block_enginedone 26.4.4.2 Class template independent_bits_enginedone 26.4.4.3 Class template shuffle_order_enginedone 26.4.4.4 Class template xor_combine_enginedone operator()() per N2079 26.4.5 Engines and engine adaptors with predefined parameters done 26.4.6 Class random_devicedone 26.4.7 Utilities done 26.4.7.1 Class seed_seq missing 26.4.7.2 Function template generate_canonical missing 26.4.8 Random number generation class templates done 26.4.8.1 Uniform distributions partial 26.4.8.1 Class template uniform_int_distribution missing 26.4.8.1 Class template uniform_real_distribution missing 26.4.8.2 Bernoulli distributions partial 26.4.8.2.1 Class bernoulli_distributiondone 26.4.8.2.2 Class template binomial_distributiondone 26.4.8.2.3 Class template geometric_distributiondone 26.4.8.2.4 Class template negative_binomial_distribution missing 26.4.8.3 Poisson distributions partial 26.4.8.3.1 Class template poisson_distributiondone 26.4.8.3.2 Class template exponential_distributiondone 26.4.8.3.3 Class template gamma_distributiondone 26.4.8.3.4 Class template weibull_distribution missing 26.4.8.3.5 Class template extreme_value_distribution missing 26.4.8.4 Normal distributions partial 26.4.8.4.1 Class template normal_distributiondone 26.4.8.4.2 Class template lognormal_distribution missing 26.4.8.4.3 Class template chi_squared_distribution missing 26.4.8.4.4 Class template cauchy_distribution missing 26.4.8.4.5 Class template fisher_f_distribution missing 26.4.8.4.6 Class template student_t_distribution missing 26.4.8.5 Sampling distributions missing 26.4.8.5.1 Class template discrete_distribution missing 26.4.8.5.1 Class template piecewise_constant_distribution missing 26.4.8.5.1 Class template general_pdf_distribution missing 28 Regular Expressions 28.1 Definitions missing 28.2 Requirements missing 28.3 Regular expressions summary missing 28.4 Header <regex> synopsis missing 28.5 Namespace tr1::regex_constants missing 28.5.1 Bitmask Type syntax_option_type missing 28.5.2 Bitmask Type regex_constants::match_flag_type missing 28.5.3 Implementation defined error_type missing 28.6 Class regex_error missing 28.7 Class template regex_traits missing 28.8 Class template basic_regex missing 28.8.1 basic_regex constants missing 28.8.2 basic_regex constructors missing 28.8.3 basic_regex assign missing 28.8.4 basic_regex constant operations missing 28.8.5 basic_regex locale missing 28.8.6 basic_regex swap missing 28.8.7 basic_regex non-member functions missing 28.8.7.1 basic_regex non-member swap missing 28.9 Class template sub_match missing 28.9.1 sub_match members missing 28.9.2 sub_match non-member operators missing 28.10 Class template match_results missing 28.10.1 match_results constructors missing 28.10.2 match_results size missing 28.10.3 match_results element access missing 28.10.4 match_results formatting missing 28.10.5 match_results allocator missing 28.10.6 match_results swap missing 28.11 Regular expression algorithms missing 28.11.1 exceptions missing 28.11.2 regex_match missing 28.11.3 regex_search missing 28.11.4 regex_replace missing 28.12 Regular expression Iterators missing 28.12.1 Class template regex_iterator missing 28.12.1.1 regex_iterator constructors missing 28.12.1.2 regex_iterator comparisons missing 28.12.1.3 regex_iterator dereference missing 28.12.1.4 regex_iterator increment missing 28.12.2 Class template regex_token_iterator missing 28.12.2.1 regex_token_iterator constructors missing 28.12.2.2 regex_token_iterator comparisons missing 28.12.2.3 regex_token_iterator dereference missing 28.12.2.4 regex_token_iterator increment missing 28.13 Modified ECMAScript regular expression grammar missing C C Compatibility C2.1 Additions to header <complex>done C2.1.1 Synopsis done C2.1.2 Function acosdone C2.1.3 Function asindone C2.1.4 Function atandone C2.1.5 Function acoshdone C2.1.6 Function asinhdone C2.1.7 Function atanhdone C2.1.8 Function fabsdone C2.1.9 Additional Overloads done C2.2 Header <ccomplex> missing DR 551 C2.3 Header <complex.h> missing DR 551 C2.4 Additions to header <cctype>done C2.4.1 Synopsis done C2.4.2 Function isblankdone C2.5 Additions to header <ctype.h>done C2.6 Header <cfenv>done C2.6.1 Synopsis done C2.6.2 Definitions done C2.7 Header <fenv.h>done C2.8 Additions to header <cfloat>done C2.9 Additions to header <float.h>done C2.10 Additions to header <ios> missing C2.10.1 Synopsis missing C2.10.2 Function hexfloat missing C2.11 Header <cinttypes>done C2.11.1 Synopsis done DR 557 C2.11.2 Definitions done C2.12 Header <inttypes.h>done C2.13 Additions to header <climits>done C2.14 Additions to header <limits.h>done C2.15 Additions to header <locale> missing C2.16 Additions to header <cmath>done C2.16.1 Synopsis done C2.16.2 Definitions done C2.16.3 Function template definitions done C2.16.4 Additional overloads done DR 568; DR 550 C2.17 Additions to header <math.h>done C2.18 Additions to header <cstdarg>done C2.19 Additions to header <stdarg.h>done C2.20 The header <cstdbool>done C2.21 The header <stdbool.h>done C2.22 The header <cstdint>done C2.22.1 Synopsis done C2.22.2 Definitions done C2.23 The header <stdint.h>done C2.24 Additions to header <cstdio>done C2.24.1 Synopsis done C2.24.2 Definitions done C2.24.3 Additional format specifiers done C library responsibility C2.24.4 Additions to header <stdio.h>done C2.25 Additions to header <cstdlib>done C2.25.1 Synopsis done C2.25.2 Definitions done C2.25.3 Function absdone C2.25.4 Function divdone C2.26 Additions to header <stdlib.h>done C2.27 Header <ctgmath>done DR 551 C2.28 Header <tgmath.h>done DR 551 C2.29 Additions to header <ctime>done C library responsibility C2.30 Additions to header <cwchar>done C2.30.1 Synopsis done C2.30.2 Definitions done C2.30.3 Additional wide format specifiers done C library responsibility C2.31 Additions to header <wchar.h>done C2.32 Additions to header <cwctype>done C2.32.1 Synopsis done C2.32.2 Function iswblankdone C2.33 Additions to header <wctype.h>done D Compatibility Features D.6 Old iostream members done D.8 Binders done 33911 D.9 Class template auto_ptrdone 33911 -std=c++98 or -std=gnu++98.
! algorithmiomaniplistostreamstreambufbitsetioslocalequeuestringcomplexiosfwdmapsettypeinfodequeiostreammemorysstreamutilityexceptionistreamnewstackvalarrayfstreamiteratornumericstdexceptvectorfunctionallimits cassertciso646csetjmpcstdioctimecctypeclimitscsignalcstdlibcwcharcerrnoclocalecstdargcstringcwctypecfloatcmathcstddef -std=c++0x or -std=gnu++0x.
! algorithmiomaniplocaleregextuplearrayiosmapsettypeinfobitsetiosfwdmemorysstreamtype_traitscomplexiostreamnewstackunordered_mapdequeistreamnumericstdexceptunordered_setexceptioniteratorostreamstreambufutilityfstreamlimitsqueuestringvalarrayfunctionallistrandomsystem_errorvectorcassertcfloatcmathcstddefctgmathccomplexcinttypescsetjmpcstdintctimecctypeciso646csignalcstdiocucharcerrnoclimitscstdargcstdlibcwcharcfenvclocalecstdboolcstringcwctypetr1/arraytr1/memorytr1/regextr1/type_traitstr1/unordered_settr1/complextr1/randomtr1/tupletr1/unordered_maptr1/utilitytr1/functional tr1/cmathtr1/cfloattr1/cstdargtr1/cstdiotr1/ctimetr1/ccomplextr1/cinttypestr1/cstdbooltr1/cstdlibtr1/cwchartr1/cfenvtr1/climitstr1/cstdinttr1/ctgmathtr1/cwctypeext/algorithmext/debug_allocator.hext/mt_allocator.hext/pod_char_traits.hext/stdio_sync_filebuf.hext/array_allocator.hext/enc_filebuf.hext/new_allocator.hext/pool_allocator.hext/throw_allocator.hext/atomicity.hext/functionalext/numericext/rb_treeext/typelist.hext/bitmap_allocator.hext/iteratorext/numeric_traits.hext/ropeext/type_traits.hext/codecvt_specializations.hext/malloc_allocator.hext/pb_ds/assoc_container.hext/slistext/vstring.hext/concurrence.hext/memoryext/pb_ds/priority_queue.hext/stdio_filebuf.h debug/bitsetdebug/listdebug/setdebug/unordered_mapdebug/vectordebug/dequedebug/mapdebug/stringdebug/unordered_set
--- 19,33 ----
the 1998 standard as updated for 2003, and the draft of the
upcoming 200x standard.
-std=c++98 or -std=gnu++98.
! algorithmiomaniplistostreamstreambufbitsetioslocalequeuestringcomplexiosfwdmapsettypeinfodequeiostreammemorysstreamutilityexceptionistreamnewstackvalarrayfstreamiteratornumericstdexceptvectorfunctionallimits cassertciso646csetjmpcstdioctimecctypeclimitscsignalcstdlibcwcharcerrnoclocalecstdargcstringcwctypecfloatcmathcstddef -std=c++0x or -std=gnu++0x.
! algorithmiomaniplocaleregextuplearrayiosmapsettypeinfobitsetiosfwdmemorysstreamtype_traitscomplexiostreamnewstackunordered_mapdequeistreamnumericstdexceptunordered_setexceptioniteratorostreamstreambufutilityfstreamlimitsqueuestringvalarrayfunctionallistrandomsystem_errorvectorcassertcfloatcmathcstddefctgmathccomplexcinttypescsetjmpcstdintctimecctypeciso646csignalcstdiocucharcerrnoclimitscstdargcstdlibcwcharcfenvclocalecstdboolcstringcwctypetr1/arraytr1/memorytr1/regextr1/type_traitstr1/unordered_settr1/complextr1/randomtr1/tupletr1/unordered_maptr1/utilitytr1/functional tr1/cmathtr1/cfloattr1/cstdargtr1/cstdiotr1/ctimetr1/ccomplextr1/cinttypestr1/cstdbooltr1/cstdlibtr1/cwchartr1/cfenvtr1/climitstr1/cstdinttr1/ctgmathtr1/cwctypeext/algorithmext/debug_allocator.hext/mt_allocator.hext/pod_char_traits.hext/stdio_sync_filebuf.hext/array_allocator.hext/enc_filebuf.hext/new_allocator.hext/pool_allocator.hext/throw_allocator.hext/atomicity.hext/functionalext/numericext/rb_treeext/typelist.hext/bitmap_allocator.hext/iteratorext/numeric_traits.hext/ropeext/type_traits.hext/codecvt_specializations.hext/malloc_allocator.hext/pb_ds/assoc_container.hext/slistext/vstring.hext/concurrence.hext/memoryext/pb_ds/priority_queue.hext/stdio_filebuf.h debug/bitsetdebug/listdebug/setdebug/unordered_mapdebug/vectordebug/dequedebug/mapdebug/stringdebug/unordered_set
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch03s03.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch03s03.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt01ch03s03.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt01ch03s03.html Thu Apr 10 22:53:15 2008
***************
*** 2,8 ****
namespace std, such as namespace
std::tr1.
namespace std, such as namespace
std::tr1.
string member.
string member: a full heirarchy can be
found in the source documentation.
string member.
string member: a full hierarchy can be
found in the source documentation.
allocator. The
allocator abstraction is used throughout the
library in string, container classes,
! algorithnms, and parts of iostreams. This class, and base classes of
it, are the superset of available free store (“heap”)
management classes.
allocator. The
allocator abstraction is used throughout the
library in string, container classes,
! algorithms, and parts of iostreams. This class, and base classes of
it, are the superset of available free store (“heap”)
management classes.
abi::__cxa_atexit is not recommended.
! abi::__cxa_atexit is not recommended.
! allocator is derived from
may not be user-configurable.
! allocator is derived from
may not be user-configurable.
! allocator is
__gnu_cxx::new_allocator.
! allocator may allocate and
deallocate using implementation-specified strategies and
heuristics. Because of this, every call to an allocator object's
--- 140,146 ----
The current default choice for
allocator is
__gnu_cxx::new_allocator.
! allocator may allocate and
deallocate using implementation-specified strategies and
heuristics. Because of this, every call to an allocator object's
***************
*** 161,167 ****
directly, for every allocation. (See
include/ext/new_allocator.h, for instance.)
However, that option would involve changing source code to use
! the a non-default allocator. Another option is to force the
default allocator to remove caching and pools, and to directly
allocate with every call of allocate and
directly deallocate with every call of
--- 161,167 ----
directly, for every allocation. (See
include/ext/new_allocator.h, for instance.)
However, that option would involve changing source code to use
! a non-default allocator. Another option is to force the
default allocator to remove caching and pools, and to directly
allocate with every call of allocate and
directly deallocate with every call of
***************
*** 245,251 ****
throw_allocator
__pool_alloc
--- 245,251 ----
throw_allocator
__pool_alloc
***************
*** 282,294 ****
thr boolean determines whether the
pool should be manipulated atomically or not. When
thr = true, the allocator
! is is threadsafe, while thr =
false, and is slightly faster but unsafe for
multiple threads.
thr boolean determines whether the
pool should be manipulated atomically or not. When
thr = true, the allocator
! is is thread-safe, while thr =
false, and is slightly faster but unsafe for
multiple threads.
string instance, such as
"convert to all upper case." The word transformations
is especially apt, because the standard template function
transform<> is used.
#include <string>
--- 1,13 ----
! string instance, such as
"convert to all upper case." The word transformations
is especially apt, because the standard template function
transform<> is used.
#include <string>
***************
*** 86,89 ****
str.erase(notwhite+1); find could be inserted directly
into the calls to erase, in case your compiler does not
optimize named temporaries out of existence.
! find could be inserted directly
into the calls to erase, in case your compiler does not
optimize named temporaries out of existence.
! std::basic_string is tantalizingly general, in that
it is parameterized on the type of the characters which it holds.
In theory, you could whip up a Unicode character class and instantiate
--- 1,6 ----
! std::basic_string is tantalizingly general, in that
it is parameterized on the type of the characters which it holds.
In theory, you could whip up a Unicode character class and instantiate
***************
*** 54,57 ****
nice-looking first attempt turned out to not
be conforming C++, due to the rule that CharT must be a POD.
(See how tricky this is?)
! static locale::id id;
static locale::id id;
`locale -a` displays available locales.
--- 42,52 ----
Provides an index for looking up specific facets.
`locale -a` displays available locales.
*************** relation (of the C++ locale mechanism) t
*** 372,378 ****
global C locale is modified if a named C++ locale object is set as the
global locale" (emphasis Paolo), that is:
std::locale::global(std::locale(""));std::setlocale(LC_ALL, "");
std::locale::global(std::locale(""));std::setlocale(LC_ALL, "");
Container Header Debug container Debug header std::bitsetbitset__gnu_debug::bitsetbitset std::dequedeque__gnu_debug::dequedeque std::listlist__gnu_debug::listlist std::mapmap__gnu_debug::mapmap std::multimapmap__gnu_debug::multimapmap std::multisetset__gnu_debug::multisetset std::setset__gnu_debug::setset std::stringstring__gnu_debug::stringstring std::wstringstring__gnu_debug::wstringstring std::basic_stringstring__gnu_debug::basic_stringstring std::vectorvector__gnu_debug::vectorvector Container Header Debug container Debug header std::unordered_mapunordered_map__gnu_debug::unordered_mapunordered_map std::unordered_multimapunordered_map__gnu_debug::unordered_multimapunordered_map std::unordered_setunordered_set__gnu_debug::unordered_setunordered_set std::unordered_multisetunordered_set__gnu_debug::unordered_multisetunordered_set Container Header Debug container Debug header std::bitsetbitset__gnu_debug::bitsetbitset std::dequedeque__gnu_debug::dequedeque std::listlist__gnu_debug::listlist std::mapmap__gnu_debug::mapmap std::multimapmap__gnu_debug::multimapmap std::multisetset__gnu_debug::multisetset std::setset__gnu_debug::setset std::stringstring__gnu_debug::stringstring std::wstringstring__gnu_debug::wstringstring std::basic_stringstring__gnu_debug::basic_stringstring std::vectorvector__gnu_debug::vectorvector Container Header Debug container Debug header std::unordered_mapunordered_map__gnu_debug::unordered_mapunordered_map std::unordered_multimapunordered_map__gnu_debug::unordered_multimapunordered_map std::unordered_setunordered_set__gnu_debug::unordered_setunordered_set std::unordered_multisetunordered_set__gnu_debug::unordered_multisetunordered_set -D_GLIBCXX_PARALLEL -fopenmp. This
! will link in libgomp, the GNU OpenMP implementation,
whose presence is mandatory. In addition, hardware capable of atomic
operations is mandatory. Actually activating these atomic
operations may require explicit compiler flags on some targets
! (like sparc and x86), such as -march=i686,
! -march=native or -mcpu=v9.
! _GLIBCXX_PARALLEL define may change the
sizes and behavior of standard class templates such as
! std::search, and therefore one can only link code
compiled with parallel mode and code compiled without parallel mode
if no instantiation of a container is passed between the two
translation units. Parallel mode functionality has distinct linkage,
! and cannot be confused with normal mode symbols.-D_GLIBCXX_PARALLEL -fopenmp. This
! will link in libgomp, the GNU OpenMP implementation,
whose presence is mandatory. In addition, hardware capable of atomic
operations is mandatory. Actually activating these atomic
operations may require explicit compiler flags on some targets
! (like sparc and x86), such as -march=i686,
! -march=native or -mcpu=v9.
! _GLIBCXX_PARALLEL define may change the
sizes and behavior of standard class templates such as
! std::search, and therefore one can only link code
compiled with parallel mode and code compiled without parallel mode
if no instantiation of a container is passed between the two
translation units. Parallel mode functionality has distinct linkage,
! and cannot be confused with normal mode symbols.
! Algorithm Header Parallel algorithm Parallel header std::accumulatenumeric__gnu_parallel::accumulateparallel/numericstd::adjacent_differencenumeric__gnu_parallel::adjacent_differenceparallel/numericstd::inner_productnumeric__gnu_parallel::inner_productparallel/numericstd::partial_sumnumeric__gnu_parallel::partial_sumparallel/numericstd::adjacent_findalgorithm__gnu_parallel::adjacent_findparallel/algorithmstd::countalgorithm__gnu_parallel::countparallel/algorithmstd::count_ifalgorithm__gnu_parallel::count_ifparallel/algorithmstd::equalalgorithm__gnu_parallel::equalparallel/algorithmstd::findalgorithm__gnu_parallel::findparallel/algorithmstd::find_ifalgorithm__gnu_parallel::find_ifparallel/algorithmstd::find_first_ofalgorithm__gnu_parallel::find_first_ofparallel/algorithmstd::for_eachalgorithm__gnu_parallel::for_eachparallel/algorithmstd::generatealgorithm__gnu_parallel::generateparallel/algorithmstd::generate_nalgorithm__gnu_parallel::generate_nparallel/algorithmstd::lexicographical_comparealgorithm__gnu_parallel::lexicographical_compareparallel/algorithmstd::mismatchalgorithm__gnu_parallel::mismatchparallel/algorithmstd::searchalgorithm__gnu_parallel::searchparallel/algorithmstd::search_nalgorithm__gnu_parallel::search_nparallel/algorithmstd::transformalgorithm__gnu_parallel::transformparallel/algorithmstd::replacealgorithm__gnu_parallel::replaceparallel/algorithmstd::replace_ifalgorithm__gnu_parallel::replace_ifparallel/algorithmstd::max_elementalgorithm__gnu_parallel::max_elementparallel/algorithmstd::mergealgorithm__gnu_parallel::mergeparallel/algorithmstd::min_elementalgorithm__gnu_parallel::min_elementparallel/algorithmstd::nth_elementalgorithm__gnu_parallel::nth_elementparallel/algorithmstd::partial_sortalgorithm__gnu_parallel::partial_sortparallel/algorithmstd::partitionalgorithm__gnu_parallel::partitionparallel/algorithmstd::random_shufflealgorithm__gnu_parallel::random_shuffleparallel/algorithmstd::set_unionalgorithm__gnu_parallel::set_unionparallel/algorithmstd::set_intersectionalgorithm__gnu_parallel::set_intersectionparallel/algorithmstd::set_symmetric_differencealgorithm__gnu_parallel::set_symmetric_differenceparallel/algorithmstd::set_differencealgorithm__gnu_parallel::set_differenceparallel/algorithmstd::sortalgorithm__gnu_parallel::sortparallel/algorithmstd::stable_sortalgorithm__gnu_parallel::stable_sortparallel/algorithmstd::unique_copyalgorithm__gnu_parallel::unique_copyparallel/algorithmAlgorithm Header Parallel algorithm Parallel header std::accumulatenumeric__gnu_parallel::accumulateparallel/numericstd::adjacent_differencenumeric__gnu_parallel::adjacent_differenceparallel/numericstd::inner_productnumeric__gnu_parallel::inner_productparallel/numericstd::partial_sumnumeric__gnu_parallel::partial_sumparallel/numericstd::adjacent_findalgorithm__gnu_parallel::adjacent_findparallel/algorithmstd::countalgorithm__gnu_parallel::countparallel/algorithmstd::count_ifalgorithm__gnu_parallel::count_ifparallel/algorithmstd::equalalgorithm__gnu_parallel::equalparallel/algorithmstd::findalgorithm__gnu_parallel::findparallel/algorithmstd::find_ifalgorithm__gnu_parallel::find_ifparallel/algorithmstd::find_first_ofalgorithm__gnu_parallel::find_first_ofparallel/algorithmstd::for_eachalgorithm__gnu_parallel::for_eachparallel/algorithmstd::generatealgorithm__gnu_parallel::generateparallel/algorithmstd::generate_nalgorithm__gnu_parallel::generate_nparallel/algorithmstd::lexicographical_comparealgorithm__gnu_parallel::lexicographical_compareparallel/algorithmstd::mismatchalgorithm__gnu_parallel::mismatchparallel/algorithmstd::searchalgorithm__gnu_parallel::searchparallel/algorithmstd::search_nalgorithm__gnu_parallel::search_nparallel/algorithmstd::transformalgorithm__gnu_parallel::transformparallel/algorithmstd::replacealgorithm__gnu_parallel::replaceparallel/algorithmstd::replace_ifalgorithm__gnu_parallel::replace_ifparallel/algorithmstd::max_elementalgorithm__gnu_parallel::max_elementparallel/algorithmstd::mergealgorithm__gnu_parallel::mergeparallel/algorithmstd::min_elementalgorithm__gnu_parallel::min_elementparallel/algorithmstd::nth_elementalgorithm__gnu_parallel::nth_elementparallel/algorithmstd::partial_sortalgorithm__gnu_parallel::partial_sortparallel/algorithmstd::partitionalgorithm__gnu_parallel::partitionparallel/algorithmstd::random_shufflealgorithm__gnu_parallel::random_shuffleparallel/algorithmstd::set_unionalgorithm__gnu_parallel::set_unionparallel/algorithmstd::set_intersectionalgorithm__gnu_parallel::set_intersectionparallel/algorithmstd::set_symmetric_differencealgorithm__gnu_parallel::set_symmetric_differenceparallel/algorithmstd::set_differencealgorithm__gnu_parallel::set_differenceparallel/algorithmstd::sortalgorithm__gnu_parallel::sortparallel/algorithmstd::stable_sortalgorithm__gnu_parallel::stable_sortparallel/algorithmstd::unique_copyalgorithm__gnu_parallel::unique_copyparallel/algorithmstd::adjacent_find function is declared as:
namespace std
{
--- 1,10 ----
std::adjacent_find function is declared as:
namespace std
{
*************** namespace std
*** 26,40 ****
...
}
}
! __gnu_parallel::sequential_tag,
__gnu_parallel::parallel_tag,
__gnu_parallel::balanced_tag,
--- 27,41 ----
...
}
}
! __gnu_parallel::sequential_tag,
__gnu_parallel::parallel_tag,
__gnu_parallel::balanced_tag,
*************** parallel algorithms look like this:
*** 57,92 ****
ISO C++ signature to the correct parallel version. Also, some of the
algorithms do not have support for run-time conditions, so the last
overload is therefore missing.
! <compiletime_settings.h> and
! See
! <features.h> for details.
omp_set_num_threads.
! To force a function to execute sequentially,
! even though parallelism is switched on in general,
! add __gnu_parallel::sequential_tag()
! to the end of the argument list.
__gnu_parallel::Settings::[algorithm]_minimal_n.
! Please see
! <settings.h> for details.__gnu_serial.
std::__parallel and __gnu_parallel.
namespace
! std::__parallel. For instance, std::transform from
! <algorithm> has a parallel counterpart in
! std::__parallel::transform from
! <parallel/algorithm>. In addition, these parallel
implementations are injected into namespace
__gnu_parallel with using declarations.
namespace
--- 58,179 ----
ISO C++ signature to the correct parallel version. Also, some of the
algorithms do not have support for run-time conditions, so the last
overload is therefore missing.
! omp_set_num_threads. An example:
!
! #include <stdlib.h>
! #include <omp.h>
!
! int main()
! {
! // Explicitly set number of threads.
! const int threads_wanted = 20;
! omp_set_dynamic(false);
! omp_set_num_threads(threads_wanted);
!
! // Do work.
!
! return 0;
! }
! omp_set_nested), schedule kind
! (omp_set_schedule), and others. See the OpenMP
! documentation for more information.
! _GLIBCXX_PARALLEL,
! add __gnu_parallel::sequential_tag() to the end
! of the algorithm's argument list, or explicitly qualify the algorithm
! with the __gnu_parallel:: namespace.
! std::sort(v.begin(), v.end(), __gnu_parallel::sequential_tag());
!
! __gnu_serial::sort(v.begin(), v.end());
!
compiletime_settings.h and
! See features.h for details.
! __gnu_parallel::_Settings member data.
! __gnu_parallel::_Settings::algorithm_strategy and is a
! value of enum __gnu_parallel::_AlgorithmStrategy
! type. Choices
! include: heuristic, force_sequential,
! and force_parallel. The default is
! implementation-deduced, i.e. heuristic.
! find or sort
! can be implemented in multiple ways: when this is the case,
! a __gnu_parallel::_Settings member exists to
! pick the default strategy. For
! example, __gnu_parallel::_Settings::sort_algorithm can
! have any values of
! enum __gnu_parallel::_SortAlgorithm: MWMS, QS,
! or QS_BALANCED.
! __gnu_parallel::_Settings object. This
! threshold variable follows the following naming scheme:
! __gnu_parallel::_Settings::[algorithm]_minimal_n. So,
! for fill, the threshold variable
! is __gnu_parallel::_Settings::fill_minimal_n
! __gnu_parallel::_Settings::L1_cache_size and friends.
! settings.h
! for complete details.
!
! #include <parallel/algorithm>
! #include <parallel/settings.h>
!
! int main()
! {
! __gnu_parallel::_Settings s;
! s.algorithm_strategy = __gnu_parallel::force_parallel;
! __gnu_parallel::_Settings::set(s);
!
! // Do work... all algorithms will be parallelized, always.
!
! return 0;
! }
! __gnu_serial.
std::__parallel and __gnu_parallel.
namespace
! std::__parallel. For instance, std::transform from algorithm has a parallel counterpart in
! std::__parallel::transform from parallel/algorithm. In addition, these parallel
implementations are injected into namespace
__gnu_parallel with using declarations.
namespace
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s05.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s05.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch31s05.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch31s05.html Thu Apr 10 22:53:15 2008
***************
*** 10,24 ****
make check-parallel
testsuite/parallel directory.
!
check-performance-parallel
testsuite directory, in the file
! libstdc++_performance.sum. In addition, the
policy-based containers have their own visualizations, which have
additional software dependencies than the usual bare-boned text
file, and can be generated by using the make
--- 10,24 ----
make check-parallel
testsuite/parallel directory.
!
make check-performance-parallel
testsuite directory, in the file
! libstdc++_performance.sum. In addition, the
policy-based containers have their own visualizations, which have
additional software dependencies than the usual bare-boned text
file, and can be generated by using the make
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch35.html gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch35.html
*** gcc-4.3.0/libstdc++-v3/doc/html/manual/bk01pt12ch35.html Tue Feb 12 02:39:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/html/manual/bk01pt12ch35.html Thu Apr 10 22:53:15 2008
***************
*** 13,19 ****
is_heap tests whether or not a range is a heap.is_sorted tests whether or not a range is sorted in
! nondescending order.
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
_InputIter2 first2, _InputIter2 last2)is_heap tests whether or not a range is a heap.is_sorted tests whether or not a range is sorted in
! nondescending order.
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
_InputIter2 first2, _InputIter2 last2)
--- 179,185 ----
codecvt<char, char, mbstate_t>
*************** codecvt usage.
*** 337,377 ****
namespace __gnu_cxx.
namespace __gnu_cxx.
LC_MESSAGES mask: LC_CTYPE is also
necessary. To avoid any unpleasantness, all bits of the "C" mask
! (ie LC_ALL) are set before retrieving messages.
LC_MESSAGES mask: LC_CTYPE is also
necessary. To avoid any unpleasantness, all bits of the "C" mask
! (i.e. LC_ALL) are set before retrieving messages.
std::sort, are made parallel using OpenMP
annotations. These parallel mode constructs and can be invoked by
explicit source declaration or by compiling existing sources with a
specific compiler flag.
<numeric> are included in the parallel mode:std::accumulatestd::adjacent_differencestd::inner_productstd::partial_sum<algorithm> are included in the parallel mode:std::adjacent_findstd::countstd::count_ifstd::equalstd::findstd::find_ifstd::find_first_ofstd::for_eachstd::generatestd::generate_nstd::lexicographical_comparestd::mismatchstd::searchstd::search_nstd::transformstd::replacestd::replace_ifstd::max_elementstd::mergestd::min_elementstd::nth_elementstd::partial_sortstd::partitionstd::random_shufflestd::set_unionstd::set_intersectionstd::set_symmetric_differencestd::set_differencestd::sortstd::stable_sortstd::unique_copy<set> and <map> are included in the parallel mode:std::(multi_)map/set<T>::(multi_)map/set(Iterator begin, Iterator end) (bulk construction)std::(multi_)map/set<T>::insert(Iterator begin, Iterator end) (bulk insertion)std::sort, are made parallel using OpenMP
annotations. These parallel mode constructs and can be invoked by
explicit source declaration or by compiling existing sources with a
specific compiler flag.
numeric are included in the parallel mode:std::accumulatestd::adjacent_differencestd::inner_productstd::partial_sumalgorithm are included in the parallel mode:std::adjacent_findstd::countstd::count_ifstd::equalstd::findstd::find_ifstd::find_first_ofstd::for_eachstd::generatestd::generate_nstd::lexicographical_comparestd::mismatchstd::searchstd::search_nstd::transformstd::replacestd::replace_ifstd::max_elementstd::mergestd::min_elementstd::nth_elementstd::partial_sortstd::partitionstd::random_shufflestd::set_unionstd::set_intersectionstd::set_symmetric_differencestd::set_differencestd::sortstd::stable_sortstd::unique_copyshared_ptr<T> contains a pointer of
type T* and an object of type
__shared_count. The shared_count contains a
--- 29,35 ----
Derived classes override those functions to destroy resources in a context
where the correct dynamic type is known. This is an application of the
technique known as type erasure.
! shared_ptr<T> contains a pointer of
type T* and an object of type
__shared_count. The shared_count contains a
*************** be forwarded to Tp_Sp_counted_* classes, this one is parameterized on the
type of object, not the type of pointer; this is purely a convenience
that simplifies the implementation slightly.
! tr1::shared_ptr was extended for C++0x
with support for rvalue-references and the other features from
N2351. As with other libstdc++ headers shared by TR1 and C++0x,
--- 71,77 ----
Unlike the other _Sp_counted_* classes, this one is parameterized on the
type of object, not the type of pointer; this is purely a convenience
that simplifies the implementation slightly.
! tr1::shared_ptr was extended for C++0x
with support for rvalue-references and the other features from
N2351. As with other libstdc++ headers shared by TR1 and C++0x,
*************** compiler, standard library, platform etc
*** 129,135 ****
shared_ptr in libstdc++ the compiler and library are fixed, which
makes things much simpler: we have an atomic CAS or we don't, see Lock
Policy below for details.
! _Sp_counted_base class,
which is a template parameterized on the enum
--- 129,135 ----
shared_ptr in libstdc++ the compiler and library are fixed, which
makes things much simpler: we have an atomic CAS or we don't, see Lock
Policy below for details.
! _Sp_counted_base class,
which is a template parameterized on the enum
*************** used when libstdc++ is built without _Sp_counted_base (see Class Hierarchy
below) and __shared_count are implemented separately for C++0x
and TR1, in bits/boost_sp_shared_count.h and
--- 170,176 ----
ext/atomicity.h, which detect if the program
is multi-threaded. If only one thread of execution exists in
the program then less expensive non-atomic operations are used.
! _Sp_counted_base (see Class Hierarchy
below) and __shared_count are implemented separately for C++0x
and TR1, in bits/boost_sp_shared_count.h and
*************** The TR1 implementation is considered rel
*** 181,187 ****
change unless bug fixes require it. If the code that is common to both
C++0x and TR1 modes needs to diverge further then it might be necessary to
duplicate additional classes and only make changes to the C++0x versions.
! dynamic_pointer_cast, static_pointer_cast,
const_pointer_castdynamic_pointer_cast, static_pointer_cast,
const_pointer_casttestsuite/tr1/2_general_utilities/shared_ptr.
! testsuite/tr1/2_general_utilities/shared_ptr.
! namespace stdGLIBCXX that do not begin with an underscore, ie
__test_func would not be exported by default. Select
exceptional symbols are allowed to be visible.namespace stdGLIBCXX that do not begin with an underscore, i.e.,
__test_func would not be exported by default. Select
exceptional symbols are allowed to be visible.heap
)
management classes.
--- 19,25 ----
class template called heap
)
management classes.
***************
*** 261,267 ****
directly, for every allocation. (See
NAMESPACE_STD
macro. At that point, one is able to use
NAMESPACE_STD::string, which will evaluate to
! std::string or ::string (ie, in the
global namespace on systems that do not put string in
std::).
--- 148,154 ----
then using that to set a value for the NAMESPACE_STD
macro. At that point, one is able to use
NAMESPACE_STD::string, which will evaluate to
! std::string or ::string (i.e., in the
global namespace on systems that do not put string in
std::).
*************** erase(size_type __pos = 0, size_type __n
*** 346,352 ****
clear is not implemented in this
version, so you should use erase (which is probably
faster than operator=(charT*)).
clear is not implemented in this
version, so you should use erase (which is probably
faster than operator=(charT*)).
stream::attach(int fd)
*** 815,821 ****
std::streambuf (or
std::basic_streambuf<..>) which opens a file
given a descriptor, and then pass an instance of this to the
--- 815,821 ----
std::streambuf (or
std::basic_streambuf<..>) which opens a file
given a descriptor, and then pass an instance of this to the
*************** AC_DEFUN([AC_HEADER_UNORDERED_SET], [
*** 1312,1315 ****
!
\ No newline at end of file
--- 1312,1315 ----
!
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml gcc-4.3.1/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
*** gcc-4.3.0/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml Mon Feb 11 00:01:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/xml/manual/bitmap_allocator.xml Thu Apr 10 22:53:15 2008
*************** else return false.is_sorted tests whether or not a range is sorted in
nondescending order.is_sorted tests whether or not a range is sorted in
nondescending order.demangling.
demangling.
static locale::id id;
--- 50,56 ----
static locale::id id;
*************** Provides an index for looking up specifi
*** 95,107 ****
LC_MESSAGES mask: LC_CTYPE is also
necessary. To avoid any unpleasantness, all bits of the "C" mask
! (ie LC_ALL) are set before retrieving messages.
LC_MESSAGES mask: LC_CTYPE is also
necessary. To avoid any unpleasantness, all bits of the "C" mask
! (i.e. LC_ALL) are set before retrieving messages.
std::sort, are made parallel using OpenMP
annotations. These parallel mode constructs and can be invoked by
explicit source declaration or by compiling existing sources with a
specific compiler flag.
--- 28,34 ----
<numeric> are included in the parallel mode:std::accumulatestd::adjacent_differencestd::inner_productstd::partial_sum<algorithm> are included in the parallel mode:std::adjacent_findstd::countstd::count_ifstd::equalstd::findstd::find_ifstd::find_first_ofstd::for_eachstd::generatestd::generate_nstd::lexicographical_comparestd::mismatchstd::searchstd::search_nstd::transformstd::replacestd::replace_ifstd::max_elementstd::mergestd::min_elementstd::nth_elementstd::partial_sortstd::partitionstd::random_shufflestd::set_unionstd::set_intersectionstd::set_symmetric_differencestd::set_differencestd::sortstd::stable_sortstd::unique_copy<set> and <map> are included in the parallel mode:std::(multi_)map/set<T>::(multi_)map/set(Iterator begin, Iterator end) (bulk construction)std::(multi_)map/set<T>::insert(Iterator begin, Iterator end) (bulk insertion)-D_GLIBCXX_PARALLEL -fopenmp. This
! will link in libgomp, the GNU OpenMP -march=i686,
! -march=native or -mcpu=v9.
_GLIBCXX_PARALLEL define may change the
sizes and behavior of standard class templates such as
! std::search, and therefore one can only link code
compiled with parallel mode and code compiled without parallel mode
if no instantiation of a container is passed between the two
translation units. Parallel mode functionality has distinct linkage,
! and cannot be confused with normal mode symbols.libgomp, the GNU OpenMP std::adjacent_find function is declared as:
__gnu_parallel::sequential_tag,
! __gnu_parallel::parallel_tag,
! __gnu_parallel::balanced_tag,
! __gnu_parallel::unbalanced_tag,
! __gnu_parallel::omp_loop_tag, or
! __gnu_parallel::omp_loop_static_tag.
! __gnu_parallel::parallelism. Values of this enum include
! __gnu_parallel::sequential,
! __gnu_parallel::parallel_unbalanced,
! __gnu_parallel::parallel_balanced,
! __gnu_parallel::parallel_omp_loop,
! __gnu_parallel::parallel_omp_loop_static, or
! __gnu_parallel::parallel_taskqueue.
! <compiletime_settings.h><features.h>omp_set_num_threads.
! To force a function to execute sequentially,
! even though parallelism is switched on in general,
! add __gnu_parallel::sequential_tag()
! to the end of the argument list.
__gnu_parallel::Settings::[algorithm]_minimal_n.
! Please see <settings.h>__gnu_serial.
compiletime_settings.h and features.h for details.
! __gnu_parallel::parallel_tag,
! __gnu_parallel::balanced_tag,
! __gnu_parallel::unbalanced_tag,
! __gnu_parallel::omp_loop_tag,
! __gnu_parallel::omp_loop_static_tag.
! This means that the actual parallelization strategy is chosen at run-time.
! (Choosing the variants at compile-time will come soon.)
! __gnu_parallel::_Settings::algorithm_strategy and is a
! value of enum __gnu_parallel::_Settings::sort_algorithm can
! have any values of
! enum __gnu_parallel::_Settings::[algorithm]_minimal_n. So,
! for __gnu_parallel::_Settings::fill_minimal_n,
! __gnu_parallel::_Settings::L1_cache_size and friends.
! __gnu_parallel::_Settings::get and
! __gnu_parallel::_Settings::set, respectively.
! Please note that the first call return a const object, so direct manipulation
! is forbidden.
! See __gnu_serial.
namespace
__gnu_parallel with using declarations.
*************** the generated source documentation.
*** 588,594 ****
testsuite/parallel directory.
testsuite directory, in the file
! libstdc++_performance.sum. In addition, the
policy-based containers have their own visualizations, which have
additional software dependencies than the usual bare-boned text
file, and can be generated by using the make
--- 731,743 ----
make
diff -Nrcpad gcc-4.3.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml gcc-4.3.1/libstdc++-v3/doc/xml/manual/status_cxx200x.xml
*** gcc-4.3.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml Mon Feb 11 00:01:33 2008
--- gcc-4.3.1/libstdc++-v3/doc/xml/manual/status_cxx200x.xml Thu Apr 10 22:53:15 2008
*************** particular release.
*** 1052,1058 ****
generate_cannonicalgenerate_canonicaltransform<> is used.
transform<> is used.
-std=c++98 or -std=gnu++98.
--- 110,116 ----
! -std=c++98 or -std=gnu++98.
***************
*** 149,155 ****
! -std=c++0x or -std=gnu++0x.
-std=c++0x or -std=gnu++0x.
namespace std, such as namespace
std::tr1.
namespace std, such as namespace
std::tr1.