From 7f4db7c80779ecbc57d1146654daf0acfe18de66 Mon Sep 17 00:00:00 2001 From: rus Date: Mon, 9 Nov 2009 20:58:24 +0000 Subject: merge from trunk git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/profile-stdlib@154052 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/doc/html/api.html | 2 +- libstdc++-v3/doc/html/index.html | 2 +- libstdc++-v3/doc/html/manual/abi.html | 24 +- libstdc++-v3/doc/html/manual/algorithms.html | 2 +- libstdc++-v3/doc/html/manual/api.html | 4 +- .../doc/html/manual/appendix_contributing.html | 8 +- libstdc++-v3/doc/html/manual/appendix_free.html | 2 +- libstdc++-v3/doc/html/manual/appendix_gpl.html | 4 +- libstdc++-v3/doc/html/manual/appendix_porting.html | 10 +- libstdc++-v3/doc/html/manual/backwards.html | 48 +- libstdc++-v3/doc/html/manual/bitmap_allocator.html | 6 +- libstdc++-v3/doc/html/manual/bitset.html | 2 +- libstdc++-v3/doc/html/manual/bk01ix01.html | 2 +- libstdc++-v3/doc/html/manual/bk01pt02pr01.html | 2 +- libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html | 4 +- libstdc++-v3/doc/html/manual/bk01pt03ch08.html | 4 +- libstdc++-v3/doc/html/manual/bk01pt09pr02.html | 2 +- libstdc++-v3/doc/html/manual/bk01pt11ch27s03.html | 22 - libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html | 4 +- libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html | 8 +- libstdc++-v3/doc/html/manual/bk01pt12ch31s05.html | 4 +- libstdc++-v3/doc/html/manual/bk01pt12ch32s02.html | 122 +++++ libstdc++-v3/doc/html/manual/bk01pt12ch32s03.html | 10 + libstdc++-v3/doc/html/manual/bk01pt12ch32s04.html | 18 + libstdc++-v3/doc/html/manual/bk01pt12ch32s05.html | 51 ++ libstdc++-v3/doc/html/manual/bk01pt12ch32s06.html | 68 +++ libstdc++-v3/doc/html/manual/bk01pt12ch32s07.html | 528 +++++++++++++++++++++ libstdc++-v3/doc/html/manual/bk01pt12ch33s02.html | 43 -- libstdc++-v3/doc/html/manual/bk01pt12ch33s03.html | 50 -- libstdc++-v3/doc/html/manual/bk01pt12ch34s02.html | 43 ++ libstdc++-v3/doc/html/manual/bk01pt12ch34s03.html | 50 ++ libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html | 41 -- libstdc++-v3/doc/html/manual/bk01pt12ch40s03.html | 37 -- libstdc++-v3/doc/html/manual/bk01pt12ch41s02.html | 41 ++ libstdc++-v3/doc/html/manual/bk01pt12ch41s03.html | 37 ++ libstdc++-v3/doc/html/manual/bk01pt12pr03.html | 2 +- libstdc++-v3/doc/html/manual/bugs.html | 5 +- libstdc++-v3/doc/html/manual/codecvt.html | 24 +- libstdc++-v3/doc/html/manual/containers.html | 2 +- libstdc++-v3/doc/html/manual/debug.html | 42 +- libstdc++-v3/doc/html/manual/diagnostics.html | 4 +- .../doc/html/manual/documentation_style.html | 6 +- libstdc++-v3/doc/html/manual/exceptions.html | 2 +- libstdc++-v3/doc/html/manual/ext_algorithms.html | 6 +- libstdc++-v3/doc/html/manual/ext_allocators.html | 6 +- libstdc++-v3/doc/html/manual/ext_concurrency.html | 6 +- libstdc++-v3/doc/html/manual/ext_containers.html | 6 +- libstdc++-v3/doc/html/manual/ext_demangling.html | 6 +- libstdc++-v3/doc/html/manual/ext_io.html | 6 +- libstdc++-v3/doc/html/manual/ext_iterators.html | 6 +- libstdc++-v3/doc/html/manual/ext_numerics.html | 6 +- libstdc++-v3/doc/html/manual/ext_utilities.html | 6 +- libstdc++-v3/doc/html/manual/extensions.html | 4 +- libstdc++-v3/doc/html/manual/facets.html | 20 +- libstdc++-v3/doc/html/manual/internals.html | 8 +- libstdc++-v3/doc/html/manual/intro.html | 4 +- libstdc++-v3/doc/html/manual/io.html | 2 +- libstdc++-v3/doc/html/manual/io_and_c.html | 2 +- libstdc++-v3/doc/html/manual/iterators.html | 2 +- libstdc++-v3/doc/html/manual/locales.html | 18 +- libstdc++-v3/doc/html/manual/localization.html | 2 +- libstdc++-v3/doc/html/manual/make.html | 4 +- libstdc++-v3/doc/html/manual/memory.html | 20 +- libstdc++-v3/doc/html/manual/messages.html | 20 +- libstdc++-v3/doc/html/manual/numerics.html | 2 +- libstdc++-v3/doc/html/manual/parallel_mode.html | 4 +- libstdc++-v3/doc/html/manual/profile_mode.html | 143 ++++++ libstdc++-v3/doc/html/manual/setup.html | 2 +- libstdc++-v3/doc/html/manual/shared_ptr.html | 22 +- libstdc++-v3/doc/html/manual/spine.html | 12 +- libstdc++-v3/doc/html/manual/status.html | 40 +- libstdc++-v3/doc/html/manual/strings.html | 2 +- libstdc++-v3/doc/html/manual/support.html | 2 +- libstdc++-v3/doc/html/manual/test.html | 7 +- libstdc++-v3/doc/html/manual/using.html | 6 +- libstdc++-v3/doc/html/manual/using_exceptions.html | 321 ++++++++++++- libstdc++-v3/doc/html/manual/using_headers.html | 13 +- libstdc++-v3/doc/html/manual/utilities.html | 8 +- libstdc++-v3/doc/html/spine.html | 10 +- 79 files changed, 1725 insertions(+), 421 deletions(-) delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt11ch27s03.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s02.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s03.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s04.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s05.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s06.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch32s07.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch33s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch33s03.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch34s02.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch34s03.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch40s02.html delete mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch40s03.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch41s02.html create mode 100644 libstdc++-v3/doc/html/manual/bk01pt12ch41s03.html create mode 100644 libstdc++-v3/doc/html/manual/profile_mode.html (limited to 'libstdc++-v3/doc/html') diff --git a/libstdc++-v3/doc/html/api.html b/libstdc++-v3/doc/html/api.html index cb2d72d61e6..fd511df55dd 100644 --- a/libstdc++-v3/doc/html/api.html +++ b/libstdc++-v3/doc/html/api.html @@ -5,7 +5,7 @@ FSF -

+


diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index 96ff103fb04..b3b2ee69d6c 100644 --- a/libstdc++-v3/doc/html/index.html +++ b/libstdc++-v3/doc/html/index.html @@ -12,7 +12,7 @@

The GNU C++ Library Documentation

-

Copyright 2008 FSF

+

Copyright 2008, 2009 FSF

Permission is granted to copy, distribute and/or modify this diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index b0d2c7c905d..7d11f768464 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -1,6 +1,6 @@ -ABI Policy and Guidelines

Part IX.  Algorithms - +

diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 6af29925e46..f0f0e271f1a 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -75,11 +75,11 @@ _Alloc_traits have been removed. __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

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

Releases after gcc-3.4 have continued to add to the collection +

Table B.1. Extension Allocators

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

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

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

+

Table B.2. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

Debug mode first appears.

Precompiled header support PCH support. diff --git a/libstdc++-v3/doc/html/manual/appendix_contributing.html b/libstdc++-v3/doc/html/manual/appendix_contributing.html index 5fea7a933b8..b54faf1b14d 100644 --- a/libstdc++-v3/doc/html/manual/appendix_contributing.html +++ b/libstdc++-v3/doc/html/manual/appendix_contributing.html @@ -1,11 +1,11 @@ -Appendix A.  Contributing

Appendix A.  Contributing - +

The GNU C++ Library follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given @@ -110,4 +110,4 @@ mail message and send it to libstdc++@gcc.gnu.org. All patches and related discussion should be sent to the libstdc++ mailing list. -

+

diff --git a/libstdc++-v3/doc/html/manual/appendix_free.html b/libstdc++-v3/doc/html/manual/appendix_free.html index a27d6e59e31..5b529f93e8e 100644 --- a/libstdc++-v3/doc/html/manual/appendix_free.html +++ b/libstdc++-v3/doc/html/manual/appendix_free.html @@ -5,7 +5,7 @@ Prev The GNU C++ Library Next

Appendix C.  Free Software Needs Free Documentation - +

The biggest deficiency in free operating systems is not in the software--it is the lack of good free manuals that we can include in diff --git a/libstdc++-v3/doc/html/manual/appendix_gpl.html b/libstdc++-v3/doc/html/manual/appendix_gpl.html index 281aeec7fef..0f9a838f365 100644 --- a/libstdc++-v3/doc/html/manual/appendix_gpl.html +++ b/libstdc++-v3/doc/html/manual/appendix_gpl.html @@ -76,7 +76,7 @@

The precise terms and conditions for copying, distribution and modification follow. -

+

TERMS AND CONDITIONS

0. Definitions. @@ -617,7 +617,7 @@ waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. -

+

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html index f45d19b3e06..037759421ee 100644 --- a/libstdc++-v3/doc/html/manual/appendix_porting.html +++ b/libstdc++-v3/doc/html/manual/appendix_porting.html @@ -5,8 +5,8 @@ Prev The GNU C++ Library Next

Appendix B.  Porting and Maintenance - -

Configure and Build Hacking

Prerequisites

+ +

Table of Contents

Configure and Build Hacking
Prerequisites
Overview: What Comes from Where
Storing Information in non-AC files (like configure.host)
Coding and Commenting Conventions
The acinclude.m4 layout
GLIBCXX_ENABLE, the --enable maker
Porting to New Hardware or Operating Systems
Operating System
CPU
Character Types
Thread Safety
Numeric Limits
Libtool
Test
Organization
Running the Testsuite
Writing a new test case
Test Harness and Utilities
ABI Policy and Guidelines
The C++ Interface
Versioning
Allowed Changes
Prohibited Changes
Implementation
Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
Backwards Compatibility
First
Second
Third

Configure and Build Hacking

Prerequisites

As noted previously, certain other tools are necessary for hacking on files that control configure (configure.ac, @@ -23,8 +23,8 @@ Regenerate all generated files by using the command sequence "autoreconf" at the top level of the libstdc++ source directory. The following will also work, but is much more complex: - "aclocal-1.7 && autoconf-2.59 && - autoheader-2.59 && automake-1.7" The version + "aclocal-1.11 && autoconf-2.64 && + autoheader-2.64 && automake-1.11" The version numbers may be absent entirely or otherwise vary depending on the current requirements and your vendor's choice of @@ -196,7 +196,7 @@

If you're wondering what that line noise in the last example was, that's how you embed autoconf special characters in output text. - They're called quadrigraphs + They're called quadrigraphs and you should use them whenever necessary.

  • HELP-STRING is what you think it is. Do not include the "default" text like we used to do; it will be done for you by diff --git a/libstdc++-v3/doc/html/manual/backwards.html b/libstdc++-v3/doc/html/manual/backwards.html index 854ed1d1a8c..252d177d4aa 100644 --- a/libstdc++-v3/doc/html/manual/backwards.html +++ b/libstdc++-v3/doc/html/manual/backwards.html @@ -17,8 +17,8 @@ ISO Standard (e.g., statistical analysis). While there are a lot of 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.

    No ios_base

    At least some older implementations don't have std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit. -

    No cout in ostream.h, no cin in istream.h

    +

    Known Issues include many of the limitations of its immediate ancestor.

    Portability notes and known implementation limitations are as follows.

    No ios_base

    At least some older implementations don't have std::ios_base, so you should use std::ios::badbit, std::ios::failbit and std::ios::eofbit and std::ios::goodbit. +

    No cout in ostream.h, no cin in istream.h

    In earlier versions of the standard, fstream.h, ostream.h @@ -44,7 +44,7 @@ considered replaced and rewritten. archived. The code is considered replaced and rewritten.

    Portability notes and known implementation limitations are as follows. -

    Namespace std:: not supported

    +

    Namespace std:: not supported

    Some care is required to support C++ compiler and or library implementation that do not have the standard library in namespace std. @@ -108,7 +108,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [ AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ]) fi ]) -

    Illegal iterator usage

    +

    Illegal iterator usage

    The following illustrate implementation-allowed illegal iterator use, and then correct use.

    • @@ -121,7 +121,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [

    • if (iterator) won't work any more => use if (iterator != iterator_type()) -

    isspace from cctype is a macro +

  • isspace from cctype is a macro

    Glibc 2.0.x and 2.1.x define ctype.h functionality as macros (isspace, isalpha etc.). @@ -154,7 +154,7 @@ std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ; (ctype.h) and the definitions in namespace std:: (<cctype>). -

    No vector::at, deque::at, string::at

    +

    No vector::at, deque::at, string::at

    One solution is to add an autoconf-test for this:

     AC_MSG_CHECKING(for container::at)
    @@ -180,7 +180,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
     

    If you are using other (non-GNU) compilers it might be a good idea to check for string::at separately. -

    No std::char_traits<char>::eof

    +

    No std::char_traits<char>::eof

    Use some kind of autoconf test, plus this:

     #ifdef HAVE_CHAR_TRAITS
    @@ -188,7 +188,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
     #else
     #define CPP_EOF EOF
     #endif
    -

    No string::clear

    +

    No string::clear

    There are two functions for deleting the contents of a string: clear and erase (the latter returns the string). @@ -206,12 +206,12 @@ erase(size_type __pos = 0, size_type __n = npos) Unfortunately, clear is not implemented in this version, so you should use erase (which is probably faster than operator=(charT*)). -

    +

    Removal of ostream::form and istream::scan extensions

    These are no longer supported. Please use stringstreams instead. -

    No basic_stringbuf, basic_stringstream

    +

    No basic_stringbuf, basic_stringstream

    Although the ISO standard i/ostringstream-classes are provided, (sstream), for compatibility with older implementations the pre-ISO @@ -299,14 +299,14 @@ any = temp; Another example of using stringstreams is in this howto.

    There is additional information in the libstdc++-v2 info files, in particular “info iostream”. -

    Little or no wide character support

    +

    Little or no wide character support

    Classes wstring and char_traits<wchar_t> are not supported. -

    No templatized iostreams

    +

    No templatized iostreams

    Classes wfilebuf and wstringstream are not supported. -

    Thread safety issues

    +

    Thread safety issues

    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 @@ -364,7 +364,7 @@ libstdc++-v3. 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.

    Pre-ISO headers moved to backwards or removed

    The pre-ISO C++ headers +

    Portability notes and known implementation limitations are as follows.

    Pre-ISO headers moved to backwards or removed

    The pre-ISO C++ headers (iostream.h, defalloc.h etc.) are available, unlike previous libstdc++ versions, but inclusion generates a warning that you are using deprecated headers. @@ -436,7 +436,7 @@ like vector.h can be replaced with 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. -

    Extension headers hash_map, hash_set moved to ext or backwards

    At this time most of the features of the SGI STL extension have been +

    Extension headers hash_map, hash_set moved to ext or backwards

    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 @@ -508,7 +508,7 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [ AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ]) fi ]) -

    No ios::nocreate/ios::noreplace. +

    No ios::nocreate/ios::noreplace.

    The existence of 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 @@ -519,7 +519,7 @@ open the file for reading, check if it has been opened, and then decide whether you want to create/replace or not. To my knowledge, even older implementations support app, ate and trunc (except for app ?). -

    +

    No stream::attach(int fd)

    Phil Edwards writes: It was considered and rejected for the ISO @@ -542,7 +542,7 @@ No stream::attach(int fd) For another example of this, refer to fdstream example by Nicolai Josuttis. -

    +

    Support for C++98 dialect.

    Check for complete library coverage of the C++1998/2003 standard.

    @@ -610,7 +610,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
         AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
       fi
     ])
    -

    +

    Support for C++TR1 dialect.

    Check for library coverage of the TR1 standard.

    @@ -687,7 +687,7 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
         AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
       fi
     ])
    -

    +

    Support for C++0x dialect.

    Check for baseline language coverage in the compiler for the C++0xstandard.

    @@ -899,27 +899,27 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
         AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
       fi
     ])
    -

    +

    Container::iterator_type is not necessarily Container::value_type*

    This is a change in behavior from the previous version. Now, most iterator_type typedefs in container classes are POD objects, not value_type pointers. -

    Bibliography

    [ +

    Bibliography

    [ kegel41 ] Migrating to GCC 4.1 . Dan Kegel. - .

    [ + .

    [ kegel41 ] Building the Whole Debian Archive with GCC 4.1: A Summary . Martin Michlmayr. - .

    [ + .

    [ lbl32 ] Migration guide for GCC-3.2 diff --git a/libstdc++-v3/doc/html/manual/bitmap_allocator.html b/libstdc++-v3/doc/html/manual/bitmap_allocator.html index 72eec938105..806ca047865 100644 --- a/libstdc++-v3/doc/html/manual/bitmap_allocator.html +++ b/libstdc++-v3/doc/html/manual/bitmap_allocator.html @@ -1,6 +1,6 @@ -bitmap_allocator

    bitmap_allocator

    +bitmap_allocator

    bitmap_allocator

    Design

    As this name suggests, this allocator uses a bit-map to keep track of the used and unused memory locations for it's book-keeping @@ -103,7 +103,7 @@ 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). -

    Table 32.1. Bitmap Allocator Memory Map

    268042949672954294967295Data -> Space for 64 ints

    +

    Table 33.1. Bitmap Allocator Memory Map

    268042949672954294967295Data -> Space for 64 ints

    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 @@ -337,4 +337,4 @@ equivalent.

  • And also this would preserve the cache as far as poss sizeof(size_t) x 8 which is the number of bits in an integer, which can fit exactly in a CPU register. Hence, the term given is exponential growth of the internal pool. -

  • +

    diff --git a/libstdc++-v3/doc/html/manual/bitset.html b/libstdc++-v3/doc/html/manual/bitset.html index 85dbc857ae7..acc150df7e8 100644 --- a/libstdc++-v3/doc/html/manual/bitset.html +++ b/libstdc++-v3/doc/html/manual/bitset.html @@ -84,7 +84,7 @@ author would love to hear from you...

    Also note that the implementation of bitset used in libstdc++ has - some extensions. + some extensions.

    Type String

    Bitmasks do not take char* nor const char* arguments in their diff --git a/libstdc++-v3/doc/html/manual/bk01ix01.html b/libstdc++-v3/doc/html/manual/bk01ix01.html index e46ca2ea195..51a67bbe12d 100644 --- a/libstdc++-v3/doc/html/manual/bk01ix01.html +++ b/libstdc++-v3/doc/html/manual/bk01ix01.html @@ -1,6 +1,6 @@ -Index

    Index

    A

    Algorithms, +Index

    Index

    A

    Algorithms, Algorithms
    Appendix
    Contributing, diff --git a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html index 724322683bf..4ec01fefd93 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html +++ b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html @@ -3,7 +3,7 @@

    Next


    This part deals with the functions called and objects created automatically during the course of a program's existence.

    diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html b/libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html index 5194208173b..d72d23d2d95 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch07s02.html @@ -1,6 +1,6 @@ -Adding Data to Exceptions

    Adding Data to Exceptions

    +Adding Data to Exceptions

    Adding Data to Exceptions

    The standard exception classes carry with them a single string as data (usually describing what went wrong or where the 'throw' took place). It's good to remember that you can add your own data to @@ -17,4 +17,4 @@ int e; DBID id; // some user-defined type }; -

    +
    diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch08.html b/libstdc++-v3/doc/html/manual/bk01pt03ch08.html index 758405f356c..5c6d0c83a24 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch08.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch08.html @@ -1,6 +1,6 @@ -Chapter 8. Concept Checking

    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 --git a/libstdc++-v3/doc/html/manual/bugs.html b/libstdc++-v3/doc/html/manual/bugs.html index 01c623516dc..12ed9a966fa 100644 --- a/libstdc++-v3/doc/html/manual/bugs.html +++ b/libstdc++-v3/doc/html/manual/bugs.html @@ -123,6 +123,9 @@

    129: Need error indication from seekp() and seekg()

    These functions set failbit on error now. +

    130: + Return type of container::erase(iterator) differs for associative containers +

    Make member erase return iterator for set, multiset, map, multimap.

    136: seekp, seekg setting wrong streams?

    seekp should only set the output stream, and @@ -335,7 +338,7 @@

    844: complex pow return type is ambiguous

    In C++0x mode, remove the pow(complex<T>, int) signature. -

    853: +

    853: to_string needs updating with zero and one

    Update / add the signatures.

    diff --git a/libstdc++-v3/doc/html/manual/codecvt.html b/libstdc++-v3/doc/html/manual/codecvt.html index 2b06179cdf2..0ac3285f1e9 100644 --- a/libstdc++-v3/doc/html/manual/codecvt.html +++ b/libstdc++-v3/doc/html/manual/codecvt.html @@ -337,41 +337,41 @@ codecvt usage.

  • wchar_t/char internal buffers and conversions between internal/external buffers? -

  • Bibliography

    +

    Bibliography

    The GNU C Library - . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    + . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    Correspondence - . Ulrich Drepper. Copyright © 2002 .

    + . Ulrich Drepper. Copyright © 2002 .

    ISO/IEC 14882:1998 Programming languages - C++ - . Copyright © 1998 ISO.

    + . Copyright © 1998 ISO.

    ISO/IEC 9899:1999 Programming languages - C - . Copyright © 1999 ISO.

    - System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) + . Copyright © 1999 ISO.

    + The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004) . Copyright © 1999 The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. - + - .

    + .

    The C++ Programming Language, Special Edition . Bjarne Stroustrup. Copyright © 2000 Addison Wesley, Inc.. Appendix D. Addison Wesley - .

    + .

    Standard C++ IOStreams and Locales . Advanced Programmer's Guide and Reference . Angelika Langer. Klaus Kreft. Copyright © 2000 Addison Wesley Longman, Inc.. Addison Wesley Longman - .

    + .

    A brief description of Normative Addendum 1 . Clive Feather. Extended Character Sets. - .

    + .

    The Unicode HOWTO . Bruno Haible. - .

    + .

    diff --git a/libstdc++-v3/doc/html/manual/debug.html b/libstdc++-v3/doc/html/manual/debug.html index ac6f8077648..d1a4fb2232b 100644 --- a/libstdc++-v3/doc/html/manual/debug.html +++ b/libstdc++-v3/doc/html/manual/debug.html @@ -137,7 +137,44 @@ set print vtbl on set print demangle on set demangle-style gnu-v3 -

    Tracking uncaught exceptions

    +

    + Starting with version 7.0, GDB includes support for writing + pretty-printers in Python. Pretty printers for STL classes are + distributed with GCC from version 4.5.0. The most recent version of + these printers are always found in libstdc++ svn repository. + To enable these printers, check-out the latest printers to a local + directory: +

    +  svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python 
    +

    + Next, add the following section to your ~/.gdbinit The path must + match the location where the Python module above was checked-out. + So if checked out to: /home/maude/gdb_printers/, the path would be as + written in the example below. +

    +  python
    +  import sys
    +  sys.path.insert(0, '/home/maude/gdb_printers/python')
    +  from libstdcxx.v6.printers import register_libstdcxx_printers
    +  register_libstdcxx_printers (None)
    +  end
    +

    + The path should be the only element that needs to be adjusted in the + example. Once loaded, STL classes that the printers support + should print in a more human-readable format. To print the classes + in the old style, use the /r (raw) switch in the print command + (i.e., print /r foo). This will print the classes as if the Python + pretty-printers were not loaded. +

    + For additional information on STL support and GDB please visit: + "GDB Support + for STL" in the GDB wiki. Additionally, in-depth + documentation and discussion of the pretty printing feature can be + found in "Pretty Printing" node in the GDB manual. You can find + on-line versions of the GDB user manual in GDB's homepage, at + "GDB: The GNU Project + Debugger" . +

    Tracking uncaught exceptions

    The verbose termination handler gives information about uncaught exceptions which are killing the program. It is described in the @@ -146,6 +183,9 @@ has compile and run-time checks for many containers.

    Compile Time Checking

    The Compile-Time Checks Extension has compile-time checks for many algorithms. +

    Profile-based Performance Analysis

    The Profile-based + Performance Analysis Extension has performance checks for many + algorithms.

    + +
    diff --git a/libstdc++-v3/doc/html/manual/documentation_style.html b/libstdc++-v3/doc/html/manual/documentation_style.html index 9490bb6e19a..e8d7831cb5c 100644 --- a/libstdc++-v3/doc/html/manual/documentation_style.html +++ b/libstdc++-v3/doc/html/manual/documentation_style.html @@ -6,7 +6,7 @@  Next

    Documentation Style

    Doxygen

    Prerequisites

    Prerequisite tools are Bash 2.x, Doxygen, and - the GNU + the GNU coreutils. (GNU versions of find, xargs, and possibly sed and grep are used, just because the GNU versions make things very easy.) @@ -211,11 +211,11 @@ Complete details on Docbook markup can be found in the DocBook Element Reference, online. An incomplete reference for HTML to Docbook conversion is detailed in the table below. -

    Table A.1. HTML to Docbook XML markup comparison

    HTMLXML
    <p><para>
    <pre><computeroutput>, <programlisting>, +

    Table A.1. HTML to Docbook XML markup comparison

    HTMLXML
    <p><para>
    <pre><computeroutput>, <programlisting>, <literallayout>
    <ul><itemizedlist>
    <ol><orderedlist>
    <il><listitem>
    <dl><variablelist>
    <dt><term>
    <dd><listitem>
    <a href=""><ulink url="">
    <code><literal>, <programlisting>
    <strong><emphasis>
    <em><emphasis>
    "<quote>

    And examples of detailed markup for which there are no real HTML equivalents are listed in the table below. -

    Table A.2. Docbook XML Element Use

    ElementUse
    <structname><structname>char_traits</structname>
    <classname><classname>string</classname>
    <function> +

    Table A.2. Docbook XML Element Use

    ElementUse
    <structname><structname>char_traits</structname>
    <classname><classname>string</classname>
    <function>

    <function>clear()</function>

    <function>fs.clear()</function>

    <type><type>long long</type>
    <varname><varname>fs</varname>
    <literal> diff --git a/libstdc++-v3/doc/html/manual/exceptions.html b/libstdc++-v3/doc/html/manual/exceptions.html index 74bcdebe14f..83eb8892fa4 100644 --- a/libstdc++-v3/doc/html/manual/exceptions.html +++ b/libstdc++-v3/doc/html/manual/exceptions.html @@ -3,7 +3,7 @@ Chapter 7. Exceptions

    Chapter 7. Exceptions

    Exception Classes

    +

     Next

    Chapter 7. Exceptions

    Exception Classes

    All exception objects are defined in one of the standard header files: exception, stdexcept, new, and diff --git a/libstdc++-v3/doc/html/manual/ext_algorithms.html b/libstdc++-v3/doc/html/manual/ext_algorithms.html index b77a24a50ce..eadb4441b1e 100644 --- a/libstdc++-v3/doc/html/manual/ext_algorithms.html +++ b/libstdc++-v3/doc/html/manual/ext_algorithms.html @@ -1,9 +1,9 @@ -Chapter 35. Algorithms

    Chapter 36. Algorithms

    25.1.6 (count, count_if) is extended with two more versions of count and count_if. The standard versions return their results. The additional signatures return void, but take a final parameter by reference to which they assign their results, e.g., @@ -20,4 +20,4 @@

        lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
                                      _InputIter2 first2, _InputIter2 last2)

    which does... what? -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_allocators.html b/libstdc++-v3/doc/html/manual/ext_allocators.html index 91d38b5b990..cec9f8228a0 100644 --- a/libstdc++-v3/doc/html/manual/ext_allocators.html +++ b/libstdc++-v3/doc/html/manual/ext_allocators.html @@ -1,9 +1,9 @@ -Chapter 32. Allocators

    Chapter 33. Allocators

    mt_allocator

    Intro

    The mt allocator [hereinafter referred to simply as "the allocator"] is a fixed size (power of two) allocator that was initially @@ -394,4 +394,4 @@ mutex to be locked) this operation is also made in chunks of blocks a threads freelist mentioned above). The "formula" used can probably be improved to further reduce the risk of blocks being "bounced back and forth" between freelists. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_concurrency.html b/libstdc++-v3/doc/html/manual/ext_concurrency.html index b9d7d3503e8..9fa8f74d7b1 100644 --- a/libstdc++-v3/doc/html/manual/ext_concurrency.html +++ b/libstdc++-v3/doc/html/manual/ext_concurrency.html @@ -1,9 +1,9 @@ -Chapter 40. Concurrency

    Chapter 41. Concurrency

    Design

    Interface to Locks and Mutexes

    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 namespace __gnu_cxx.

    @@ -88,4 +88,4 @@ _GLIBCXX_WRITE_MEM_BARRIER

    Which expand to the appropriate write and read barrier required by the host hardware and operating system. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_containers.html b/libstdc++-v3/doc/html/manual/ext_containers.html index 44d7f17e8cd..47ada7b5db6 100644 --- a/libstdc++-v3/doc/html/manual/ext_containers.html +++ b/libstdc++-v3/doc/html/manual/ext_containers.html @@ -1,9 +1,9 @@ -Chapter 33. Containers

    Chapter 34. Containers

    Policy Based Data Structures

    More details here. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_demangling.html b/libstdc++-v3/doc/html/manual/ext_demangling.html index 5eaf54a9804..46866b82bf9 100644 --- a/libstdc++-v3/doc/html/manual/ext_demangling.html +++ b/libstdc++-v3/doc/html/manual/ext_demangling.html @@ -1,9 +1,9 @@ -Chapter 39. Demangling

    Chapter 40. Demangling

    Transforming C++ ABI identifiers (like RTTI symbols) into the original C++ source identifiers is called “demangling.” @@ -71,4 +71,4 @@ int main() be writing C++ in order to demangle C++. (That also means we have to use crummy memory management facilities, so don't forget to free() the returned char array.) -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_io.html b/libstdc++-v3/doc/html/manual/ext_io.html index 53618a04975..d257c2c51e5 100644 --- a/libstdc++-v3/doc/html/manual/ext_io.html +++ b/libstdc++-v3/doc/html/manual/ext_io.html @@ -1,9 +1,9 @@ -Chapter 38. Input and Output

    Chapter 39. Input and Output

    Table of Contents

    Derived filebufs

    Extensions allowing filebufs to be constructed from "C" types like FILE*s and file descriptors.

    Derived filebufs

    The v2 library included non-standard extensions to construct @@ -47,4 +47,4 @@ call) then you might be interested in Henry Suter's RWLock class.

    -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_iterators.html b/libstdc++-v3/doc/html/manual/ext_iterators.html index 51b0e0f12bd..20be5ac7831 100644 --- a/libstdc++-v3/doc/html/manual/ext_iterators.html +++ b/libstdc++-v3/doc/html/manual/ext_iterators.html @@ -1,9 +1,9 @@ -Chapter 37. Iterators

    Chapter 38. Iterators

    24.3.2 describes struct iterator, which didn't exist in the original HP STL implementation (the language wasn't rich enough at the time). For backwards compatibility, base classes are provided which declare the same nested typedefs: @@ -11,4 +11,4 @@ two iterators and returns a result. It is extended by another signature which takes two iterators and a reference to a result. The result is modified, and the function returns nothing. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/ext_numerics.html b/libstdc++-v3/doc/html/manual/ext_numerics.html index f1bb1ac93eb..dc47b617dbf 100644 --- a/libstdc++-v3/doc/html/manual/ext_numerics.html +++ b/libstdc++-v3/doc/html/manual/ext_numerics.html @@ -1,9 +1,9 @@ -Chapter 36. Numerics

    Chapter 37. Numerics

    26.4, the generalized numeric operations such as accumulate, are extended with the following functions:

        power (x, n);
    @@ -17,4 +17,4 @@
        That is, it assigns value to *first, value + 1 to *(first + 1) and so
        on."  Quoted from SGI documentation.
     

    -   void iota(_ForwardIter first, _ForwardIter last, _Tp value);
    + void iota(_ForwardIter first, _ForwardIter last, _Tp value); diff --git a/libstdc++-v3/doc/html/manual/ext_utilities.html b/libstdc++-v3/doc/html/manual/ext_utilities.html index 2b432e5c56f..cf475c6f064 100644 --- a/libstdc++-v3/doc/html/manual/ext_utilities.html +++ b/libstdc++-v3/doc/html/manual/ext_utilities.html @@ -1,9 +1,9 @@ -Chapter 34. Utilities

    Chapter 35. Utilities

    The <functional> header contains many additional functors and helper functions, extending section 20.3. They are implemented in the file stl_function.h: @@ -38,4 +38,4 @@ get_temporary_buffer(5, (int*)0);

    The specialized algorithms of section 20.4.4 are extended with uninitialized_copy_n. * -

    +

    diff --git a/libstdc++-v3/doc/html/manual/extensions.html b/libstdc++-v3/doc/html/manual/extensions.html index a757f077356..e80e4110ec5 100644 --- a/libstdc++-v3/doc/html/manual/extensions.html +++ b/libstdc++-v3/doc/html/manual/extensions.html @@ -5,5 +5,5 @@
    Prev The GNU C++ Library Next

    + +
    diff --git a/libstdc++-v3/doc/html/manual/facets.html b/libstdc++-v3/doc/html/manual/facets.html index 48a6a384825..ff42a5bbe0a 100644 --- a/libstdc++-v3/doc/html/manual/facets.html +++ b/libstdc++-v3/doc/html/manual/facets.html @@ -3,7 +3,7 @@ Chapter 15. Facets aka Categories

    Chapter 15. Facets aka Categories

    ctype

    Implementation

    Specializations

    +

     Next

    Chapter 15. Facets aka Categories

    ctype

    Implementation

    Specializations

    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 @@ -50,25 +50,25 @@ characters.

  • Rename abstract base class. See if just smash-overriding is a better approach. Clarify, add sanity to naming. -

  • Bibliography

    +

    Bibliography

    The GNU C Library - . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    + . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    Correspondence - . Ulrich Drepper. Copyright © 2002 .

    + . Ulrich Drepper. Copyright © 2002 .

    ISO/IEC 14882:1998 Programming languages - C++ - . Copyright © 1998 ISO.

    + . Copyright © 1998 ISO.

    ISO/IEC 9899:1999 Programming languages - C - . Copyright © 1999 ISO.

    - System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) + . Copyright © 1999 ISO.

    + The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004) . Copyright © 1999 The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. - + - .

    + .

    The C++ Programming Language, Special Edition . Bjarne Stroustrup. Copyright © 2000 Addison Wesley, Inc.. Appendix D. Addison Wesley - .

    + .

    Standard C++ IOStreams and Locales . Advanced Programmer's Guide and Reference diff --git a/libstdc++-v3/doc/html/manual/internals.html b/libstdc++-v3/doc/html/manual/internals.html index 8ba004ece5a..aca09ecaf51 100644 --- a/libstdc++-v3/doc/html/manual/internals.html +++ b/libstdc++-v3/doc/html/manual/internals.html @@ -1,9 +1,9 @@ -Porting to New Hardware or Operating Systems

    Porting to New Hardware or Operating Systems

    This document explains how to port libstdc++ (the GNU C++ library) to a new target.

    In order to make the GNU C++ library (libstdc++) work with a new @@ -368,7 +368,7 @@ do this is to build the library using gcc -shared. ltcf-c.sh in the top-level directory. Find the switch statement that sets archive_cmds. Here, adjust the setting for your operating system. -

    diff --git a/libstdc++-v3/doc/html/manual/intro.html b/libstdc++-v3/doc/html/manual/intro.html index ed795fc6e81..350d617ccc2 100644 --- a/libstdc++-v3/doc/html/manual/intro.html +++ b/libstdc++-v3/doc/html/manual/intro.html @@ -5,5 +5,5 @@ Prev The GNU C++ Library Next
    + +
    diff --git a/libstdc++-v3/doc/html/manual/io.html b/libstdc++-v3/doc/html/manual/io.html index b5a30497632..1ede95bdcda 100644 --- a/libstdc++-v3/doc/html/manual/io.html +++ b/libstdc++-v3/doc/html/manual/io.html @@ -5,5 +5,5 @@ Prev The GNU C++ Library Next
    diff --git a/libstdc++-v3/doc/html/manual/io_and_c.html b/libstdc++-v3/doc/html/manual/io_and_c.html index e85fe0d00d2..e5fe3c77da2 100644 --- a/libstdc++-v3/doc/html/manual/io_and_c.html +++ b/libstdc++-v3/doc/html/manual/io_and_c.html @@ -4,7 +4,7 @@ Input and Output  Next

    Chapter 28. Interacting with C

    Using FILE* and file descriptors

    - See the extensions for using + See the extensions for using FILE and file descriptors with ofstream and ifstream. diff --git a/libstdc++-v3/doc/html/manual/iterators.html b/libstdc++-v3/doc/html/manual/iterators.html index 046bf075b9b..a002097bfcd 100644 --- a/libstdc++-v3/doc/html/manual/iterators.html +++ b/libstdc++-v3/doc/html/manual/iterators.html @@ -5,5 +5,5 @@ Prev The GNU C++ Library Next


    Part VIII.  Iterators - +

    diff --git a/libstdc++-v3/doc/html/manual/locales.html b/libstdc++-v3/doc/html/manual/locales.html index 49634676312..296e8aecbba 100644 --- a/libstdc++-v3/doc/html/manual/locales.html +++ b/libstdc++-v3/doc/html/manual/locales.html @@ -398,25 +398,25 @@ global locale" (emphasis Paolo), that is: What should non-required facet instantiations do? If the generic implementation is provided, then how to end-users provide specializations? -

    Bibliography

    +

    Bibliography

    The GNU C Library - . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    + . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling and 7 Locales and Internationalization.

    Correspondence - . Ulrich Drepper. Copyright © 2002 .

    + . Ulrich Drepper. Copyright © 2002 .

    ISO/IEC 14882:1998 Programming languages - C++ - . Copyright © 1998 ISO.

    + . Copyright © 1998 ISO.

    ISO/IEC 9899:1999 Programming languages - C - . Copyright © 1999 ISO.

    - System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x) + . Copyright © 1999 ISO.

    + The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004) . Copyright © 1999 The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. - + - .

    + .

    The C++ Programming Language, Special Edition . Bjarne Stroustrup. Copyright © 2000 Addison Wesley, Inc.. Appendix D. Addison Wesley - .

    + .

    Standard C++ IOStreams and Locales . Advanced Programmer's Guide and Reference diff --git a/libstdc++-v3/doc/html/manual/localization.html b/libstdc++-v3/doc/html/manual/localization.html index 5f30a5fb542..152956fa176 100644 --- a/libstdc++-v3/doc/html/manual/localization.html +++ b/libstdc++-v3/doc/html/manual/localization.html @@ -5,5 +5,5 @@ Prev The GNU C++ Library Next


    diff --git a/libstdc++-v3/doc/html/manual/make.html b/libstdc++-v3/doc/html/manual/make.html index 6a56ea690da..2563d277938 100644 --- a/libstdc++-v3/doc/html/manual/make.html +++ b/libstdc++-v3/doc/html/manual/make.html @@ -1,9 +1,9 @@ -Make

    Make

    If you have never done this before, you should read the basic +Make

    Make

    If you have never done this before, you should read the basic GCC Installation Instructions first. Read all of them. Twice.

    Then type:make, and congratulations, you're started to build. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/memory.html b/libstdc++-v3/doc/html/manual/memory.html index 25e863d9e89..b49003b7a82 100644 --- a/libstdc++-v3/doc/html/manual/memory.html +++ b/libstdc++-v3/doc/html/manual/memory.html @@ -93,7 +93,7 @@ or loading and unloading shared objects in memory. As such, using caching allocators on systems that do not support abi::__cxa_atexit is not recommended. -

    Implementation

    Interface Design

    +

    Implementation

    Interface Design

    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 @@ -106,7 +106,7 @@

    The base class that allocator is derived from may not be user-configurable. -

    Selecting Default Allocation Policy

    +

    Selecting Default Allocation Policy

    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 @@ -143,7 +143,7 @@ The current default choice for allocator is __gnu_cxx::new_allocator. -

    Disabling Memory Caching

    +

    Disabling Memory Caching

    In use, allocator may allocate and deallocate using implementation-specified strategies and heuristics. Because of this, every call to an allocator object's @@ -308,11 +308,11 @@ 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. -

    Bibliography

    +

    Bibliography

    ISO/IEC 14882:1998 Programming languages - C++ . isoc++_1998 - 20.4 Memory.

    The Standard Librarian: What Are Allocators Good + 20.4 Memory.

    The Standard Librarian: What Are Allocators Good . austernm Matt Austern. @@ -320,28 +320,28 @@ . - .

    The Hoard Memory Allocator. + .

    The Hoard Memory Allocator. emeryb Emery Berger. - .

    Reconsidering Custom Memory Allocation. + .

    Reconsidering Custom Memory Allocation. bergerzorn Emery Berger. Ben Zorn. Kathryn McKinley. Copyright © 2002 OOPSLA. - .

    Allocator Types. + .

    Allocator Types. kreftlanger Klaus Kreft. Angelika Langer. C/C++ Users Journal . - .

    The C++ Programming Language. + .

    The C++ Programming Language. tcpl Bjarne Stroustrup. Copyright © 2000 . 19.4 Allocators. Addison Wesley - .

    Yalloc: A Recycling C++ Allocator. + .

    Bibliography

    +

    Bibliography

    The GNU C Library . Roland McGrath. Ulrich Drepper. Copyright © 2007 FSF. Chapters 6 Character Set Handling, and 7 Locales and Internationalization - .

    + .

    Correspondence - . Ulrich Drepper. Copyright © 2002 .

    + . Ulrich Drepper. Copyright © 2002 .

    ISO/IEC 14882:1998 Programming languages - C++ - . Copyright © 1998 ISO.

    + . Copyright © 1998 ISO.

    ISO/IEC 9899:1999 Programming languages - C - . Copyright © 1999 ISO.

    + . Copyright © 1999 ISO.

    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 . Bjarne Stroustrup. Copyright © 2000 Addison Wesley, Inc.. Appendix D. Addison Wesley - .

    + .

    Standard C++ IOStreams and Locales . Advanced Programmer's Guide and Reference . Angelika Langer. Klaus Kreft. 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 --git a/libstdc++-v3/doc/html/manual/parallel_mode.html b/libstdc++-v3/doc/html/manual/parallel_mode.html index cbcdebaf9b9..635ef1dd6a1 100644 --- a/libstdc++-v3/doc/html/manual/parallel_mode.html +++ b/libstdc++-v3/doc/html/manual/parallel_mode.html @@ -13,11 +13,11 @@ explicit source declaration or by compiling existing sources with a specific compiler flag.

    Intro

    The following library components in the include numeric are included in the parallel mode:

    • std::accumulate

    • std::adjacent_difference

    • std::inner_product

    • std::partial_sum

    The following library components in the include -algorithm are included in the parallel mode:

    • std::adjacent_find

    • std::count

    • std::count_if

    • std::equal

    • std::find

    • std::find_if

    • std::find_first_of

    • std::for_each

    • std::generate

    • std::generate_n

    • std::lexicographical_compare

    • std::mismatch

    • std::search

    • std::search_n

    • std::transform

    • std::replace

    • std::replace_if

    • std::max_element

    • std::merge

    • std::min_element

    • std::nth_element

    • std::partial_sort

    • std::partition

    • std::random_shuffle

    • std::set_union

    • std::set_intersection

    • std::set_symmetric_difference

    • std::set_difference

    • std::sort

    • std::stable_sort

    • std::unique_copy

    Bibliography

    +algorithm are included in the parallel mode:

    • std::adjacent_find

    • std::count

    • std::count_if

    • std::equal

    • std::find

    • std::find_if

    • std::find_first_of

    • std::for_each

    • std::generate

    • std::generate_n

    • std::lexicographical_compare

    • std::mismatch

    • std::search

    • std::search_n

    • std::transform

    • std::replace

    • std::replace_if

    • std::max_element

    • std::merge

    • std::min_element

    • std::nth_element

    • std::partial_sort

    • std::partition

    • std::random_shuffle

    • std::set_union

    • std::set_intersection

    • std::set_symmetric_difference

    • std::set_difference

    • std::sort

    • std::stable_sort

    • std::unique_copy

    Bibliography

    Parallelization of Bulk Operations for STL Dictionaries . Johannes Singler. Leonor Frias. Copyright © 2007 . Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS) - .

    + .

    The Multi-Core Standard Template Library . Johannes Singler. Peter Sanders. Felix Putze. Copyright © 2007 . Euro-Par 2007: Parallel Processing. (LNCS 4641) diff --git a/libstdc++-v3/doc/html/manual/profile_mode.html b/libstdc++-v3/doc/html/manual/profile_mode.html new file mode 100644 index 00000000000..e47ecdb67e1 --- /dev/null +++ b/libstdc++-v3/doc/html/manual/profile_mode.html @@ -0,0 +1,143 @@ + + +Chapter 32. Profile Mode

    Chapter 32. Profile Mode

    Intro

    + Goal: Give performance improvement advice based on + recognition of suboptimal usage patterns of the standard library. +

    + Method: Wrap the standard library code. Insert + calls to an instrumentation library to record the internal state of + various components at interesting entry/exit points to/from the standard + library. Process trace, recognize suboptimal patterns, give advice. + For details, see + paper presented at + CGO 2009. +

    + Strengths: +

    • + Unintrusive solution. The application code does not require any + modification. +

    • The advice is call context sensitive, thus capable of + identifying precisely interesting dynamic performance behavior. +

    • + The overhead model is pay-per-view. When you turn off a diagnostic class + at compile time, its overhead disappears. +

    +

    + Drawbacks: +

    • + You must recompile the application code with custom options. +

    • You must run the application on representative input. + The advice is input dependent. +

    • + The execution time will increase, in some cases by factors. +

    +

    Using the Profile Mode

    + This is the anticipated common workflow for program foo.cc: +

    +$ cat foo.cc
    +#include <vector>
    +int main() {
    +  vector<int> v;
    +  for (int k = 0; k < 1024; ++k) v.insert(v.begin(), k);
    +}
    +
    +$ g++ -D_GLIBCXX_PROFILE foo.cc
    +$ ./a.out
    +$ cat libstdcxx-profile.txt
    +vector-to-list: improvement = 5: call stack = 0x804842c ...
    +    : advice = change std::vector to std::list
    +vector-size: improvement = 3: call stack = 0x804842c ...
    +    : advice = change initial container size from 0 to 1024
    +

    +

    + Anatomy of a warning: +

    • + Warning id. This is a short descriptive string for the class + that this warning belongs to. E.g., "vector-to-list". +

    • + Estimated improvement. This is an approximation of the benefit expected + from implementing the change suggested by the warning. It is given on + a log10 scale. Negative values mean that the alternative would actually + do worse than the current choice. + In the example above, 5 comes from the fact that the overhead of + inserting at the beginning of a vector vs. a list is around 1024 * 1024 / 2, + which is around 10e5. The improvement from setting the initial size to + 1024 is in the range of 10e3, since the overhead of dynamic resizing is + linear in this case. +

    • + Call stack. Currently, the addresses are printed without + symbol name or code location attribution. + Users are expected to postprocess the output using, for instance, addr2line. +

    • + The warning message. For some warnings, this is static text, e.g., + "change vector to list". For other warnings, such as the one above, + the message contains numeric advice, e.g., the suggested initial size + of the hashtable. +

    +

    Two files are generated. libstdcxx-profile.txt + contains human readable advice. libstdcxx-profile.raw + contains implementation specific data about each diagnostic. + Their format is not documented. They are sufficient to generate + all the advice given in libstdcxx-profile.txt. The advantage + of keeping this raw format is that traces from multiple executions can + be aggregated simply by concatenating the raw traces. We intend to + offer an external utility program that can issue advice from a trace. +

    Advice is given regardless whether the transformation is valid. + For instance, we advise changing a map to an unordered_map even if the + application semantics require that data be ordered. + We believe such warnings can help users understand the performance + behavior of their application better, which can lead to changes + at a higher abstraction level. +

    Tuning the Profile Mode

    Compile time switches and environment variables (see also file + profiler.h). Unless specified otherwise, they can be set at compile time + using -D_<name> or by setting variable <name> + in the environment where the program is run, before starting execution. +

    • + [NO]_GLIBCXX_PROFILE_<diagnostic>: + enable/disable specific diagnostics. + See section Diagnostics for possible values. + (Environment variables not supported.) +

    • + GLIBCXX_PROFILE_TRACE_PATH_ROOT: set an alternative root + path for the output files. +

    • GLIBCXX_PROFILE_MAX_WARN_COUNT: set it to the maximum + number of warnings desired. The default value is 10.

    • + GLIBCXX_PROFILE_MAX_STACK_DEPTH: if set to 0, + the advice will + be collected and reported for the program as a whole, and not for each + call context. + This could also be used in continuous regression tests, where you + just need to know whether there is a regression or not. + The default value is 32. +

    • + GLIBCXX_PROFILE_MEM_PER_DIAGNOSTIC: + set a limit on how much memory to use for the accounting tables for each + diagnostic type. When this limit is reached, new events are ignored + until the memory usage decreases under the limit. Generally, this means + that newly created containers will not be instrumented until some + live containers are deleted. The default is 128 MB. +

    • + GLIBCXX_PROFILE_NOTHREADS: + Make the library not use threads. Otherwise, pthread mutexes are used + to protect access to internal data structures. This should be useful + only if the program is single threaded and you want to avoid the overhead + of aquiring/releasing locks unnecessarily. + (Environment variable not supported.) +

    • + HAVE_EXECINFO_H: + This name should be defined at library configuration time. + If your library was configured without execinfo.h, but + you have it in your include path, you can define it explicitly. Without + it, advice is collected for the program as a whole, and not for each + call context. + (Environment variable not supported.) +

    +

    Bibliography

    + Perflint: A Context Sensitive Performance Advisor for C++ Programs + . Lixia Liu. Silvius Rus. Copyright © 2009 . + Proceedings of the 2009 International Symposium on Code Generation + and Optimization + .

    diff --git a/libstdc++-v3/doc/html/manual/setup.html b/libstdc++-v3/doc/html/manual/setup.html index bab3b46b30c..4d8f3d01172 100644 --- a/libstdc++-v3/doc/html/manual/setup.html +++ b/libstdc++-v3/doc/html/manual/setup.html @@ -3,7 +3,7 @@ Chapter 2. Setup

    Chapter 2. Setup

    To transform libstdc++ sources into installed include files + Next


    Chapter 2. Setup

    To transform libstdc++ sources into installed include files and properly built binaries useful for linking to other software is a multi-step process. Steps include getting the sources, configuring and building the sources, testing, and installation. diff --git a/libstdc++-v3/doc/html/manual/shared_ptr.html b/libstdc++-v3/doc/html/manual/shared_ptr.html index 2561558047b..978c7ec54c6 100644 --- a/libstdc++-v3/doc/html/manual/shared_ptr.html +++ b/libstdc++-v3/doc/html/manual/shared_ptr.html @@ -29,7 +29,7 @@ drops to zero. 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. -

    Implementation

    Class Hierarchy

    +

    Implementation

    Class Hierarchy

    A shared_ptr<T> contains a pointer of type T* and an object of type __shared_count. The shared_count contains a @@ -71,7 +71,7 @@ be forwarded to Tp's constructor. 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. -

    Thread Safety

    +

    Thread Safety

    The interface of 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, @@ -129,7 +129,7 @@ compiler, standard library, platform etc. For the version of 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. -

    Selecting Lock Policy

    +

    Selecting Lock Policy

    There is a single _Sp_counted_base class, which is a template parameterized on the enum @@ -170,7 +170,7 @@ used when libstdc++ is built without --enable-threadsext/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. -

    Dual C++0x and TR1 Implementation

    +

    Dual C++0x and TR1 Implementation

    The classes derived from _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 @@ -181,7 +181,7 @@ The TR1 implementation is considered relatively stable, so is unlikely to 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. -

    Related functions and classes

    dynamic_pointer_cast, static_pointer_cast, +

    Related functions and classes

    dynamic_pointer_cast, static_pointer_cast, const_pointer_cast

    As noted in N2351, these functions can be implemented non-intrusively using the alias constructor. However the aliasing constructor is only available @@ -214,10 +214,10 @@ is called. Users should not try to use this. 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. -

    Use

    Examples

    +

    Use

    Examples

    Examples of use can be found in the testsuite, under testsuite/tr1/2_general_utilities/shared_ptr. -

    Unresolved Issues

    +

    Unresolved Issues

    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 @@ -265,7 +265,7 @@ be private. 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. -

    Bibliography

    [ +

    Bibliography

    [ n2351 ] Improving shared_ptr for C++0x, Revision 2 @@ -274,7 +274,7 @@ be private. . - .

    [ + .

    [ n2456 ] C++ Standard Library Active Issues List (Revision R52) @@ -283,7 +283,7 @@ be private. . - .

    [ + .

    [ n2461 ] Working Draft, Standard for Programming Language C++ @@ -292,7 +292,7 @@ be private. . - .

    [ + .

    [ boostshared_ptr ] Boost C++ Libraries documentation - shared_ptr class template diff --git a/libstdc++-v3/doc/html/manual/spine.html b/libstdc++-v3/doc/html/manual/spine.html index 2b326459013..09f971a46e3 100644 --- a/libstdc++-v3/doc/html/manual/spine.html +++ b/libstdc++-v3/doc/html/manual/spine.html @@ -2,18 +2,18 @@ The GNU C++ Library

    The GNU C++ Library


    Table of Contents

    I. Introduction -
    1. Status
    Implementation Status
    C++ 1998/2003
    C++ TR1
    C++ 200x
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Prerequisites
    Configure
    Make
    Test
    Organization
    Running the Testsuite
    Writing a new test case
    Test Harness and Utilities
    3. Using
    Linking Library Binary Files
    Headers
    Header Files
    Mixing Headers
    The C Headers and namespace std
    Precompiled Headers
    Namespaces
    Available Namespaces
    namespace std
    Using Namespace Composition
    Macros
    Concurrency
    Prerequisites
    Thread Safety
    Atomics
    IO
    Containers
    Exceptions
    Propagating Exceptions aka Exception Neutrality
    Exception Safety
    Support for -fno-exceptions
    Debugging Support
    Using g++
    Debug Versions of Library Binary Files
    Memory Leak Hunting
    Using gdb
    Tracking uncaught exceptions
    Debug Mode
    Compile Time Checking
    II. +
    1. Status
    Implementation Status
    C++ 1998/2003
    C++ TR1
    C++ 200x
    C++ TR 24733
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Prerequisites
    Configure
    Make
    3. Using
    Linking Library Binary Files
    Headers
    Header Files
    Mixing Headers
    The C Headers and namespace std
    Precompiled Headers
    Namespaces
    Available Namespaces
    namespace std
    Using Namespace Composition
    Macros
    Concurrency
    Prerequisites
    Thread Safety
    Atomics
    IO
    Containers
    Exceptions
    Exception Safety
    Exception Neutrality
    Doing without
    Compatibility
    Debugging Support
    Using g++
    Debug Versions of Library Binary Files
    Memory Leak Hunting
    Using gdb
    Tracking uncaught exceptions
    Debug Mode
    Compile Time Checking
    Profile-based Performance Analysis
    II. Support
    4. Types
    Fundamental Types
    Numeric Properties
    NULL
    5. Dynamic Memory
    6. Termination
    Termination Handlers
    Verbose Terminate Handler
    III. Diagnostics -
    7. Exceptions
    Exception Classes
    Adding Data to Exceptions
    Cancellation
    8. Concept Checking
    IV. +
    7. Exceptions
    Exception Classes
    Adding Data to Exceptions
    8. Concept Checking
    IV. Utilities
    9. Functors
    10. Pairs
    11. Memory
    Allocators
    Requirements
    Design Issues
    Implementation
    Using a Specific Allocator
    Custom Allocators
    Extension Allocators
    auto_ptr
    Limitations
    Use in Containers
    shared_ptr
    Requirements
    Design Issues
    Implementation
    Use
    Acknowledgments
    12. Traits
    V. @@ -40,18 +40,18 @@
    24. Iostream Objects
    25. Stream Buffers
    Derived streambuf Classes
    Buffering
    26. Memory Based Streams
    Compatibility With strstream
    27. File Based Streams
    Copying a File
    Binary Input and Output
    28. Interacting with C
    Using FILE* and file descriptors
    Performance
    XII. Extensions -
    29. Compile Time Checks
    30. Debug Mode
    Intro
    Semantics
    Using
    Using the Debug Mode
    Using a Specific Debug Container
    Design
    Goals
    Methods
    Other Implementations
    31. Parallel Mode
    Intro
    Semantics
    Using
    Prerequisite Compiler Flags
    Using Parallel Mode
    Using Specific Parallel Components
    Design
    Interface Basics
    Configuration and Tuning
    Implementation Namespaces
    Testing
    Bibliography
    32. Allocators
    mt_allocator
    Intro
    Design Issues
    Implementation
    Single Thread Example
    Multiple Thread Example
    bitmap_allocator
    Design
    Implementation
    33. Containers
    Policy Based Data Structures
    HP/SGI
    Deprecated HP/SGI
    34. Utilities
    35. Algorithms
    36. Numerics
    37. Iterators
    38. Input and Output
    Derived filebufs
    39. Demangling
    40. Concurrency
    Design
    Interface to Locks and Mutexes
    Interface to Atomic Functions
    Implementation
    Using Builtin Atomic Functions
    Thread Abstraction
    Use
    A. +
    29. Compile Time Checks
    30. Debug Mode
    Intro
    Semantics
    Using
    Using the Debug Mode
    Using a Specific Debug Container
    Design
    Goals
    Methods
    Other Implementations
    31. Parallel Mode
    Intro
    Semantics
    Using
    Prerequisite Compiler Flags
    Using Parallel Mode
    Using Specific Parallel Components
    Design
    Interface Basics
    Configuration and Tuning
    Implementation Namespaces
    Testing
    Bibliography
    32. Profile Mode
    Intro
    Using the Profile Mode
    Tuning the Profile Mode
    Design
    Wrapper Model
    Instrumentation
    Run Time Behavior
    Analysis and Diagnostics
    Cost Model
    Reports
    Testing
    Extensions for Custom Containers
    Empirical Cost Model
    Implementation Issues
    Stack Traces
    Symbolization of Instruction Addresses
    Concurrency
    Using the Standard Library in the Instrumentation Implementation
    Malloc Hooks
    Construction and Destruction of Global Objects
    Developer Information
    Big Picture
    How To Add A Diagnostic
    Diagnostics
    Diagnostic Template
    Containers
    Algorithms
    Data Locality
    Multithreaded Data Access
    Statistics
    Bibliography
    33. Allocators
    mt_allocator
    Intro
    Design Issues
    Implementation
    Single Thread Example
    Multiple Thread Example
    bitmap_allocator
    Design
    Implementation
    34. Containers
    Policy Based Data Structures
    HP/SGI
    Deprecated HP/SGI
    35. Utilities
    36. Algorithms
    37. Numerics
    38. Iterators
    39. Input and Output
    Derived filebufs
    40. Demangling
    41. Concurrency
    Design
    Interface to Locks and Mutexes
    Interface to Atomic Functions
    Implementation
    Using Builtin Atomic Functions
    Thread Abstraction
    Use
    A. Contributing
    Contributor Checklist
    Reading
    Assignment
    Getting Sources
    Submitting Patches
    Directory Layout and Source Conventions
    Coding Style
    Bad Identifiers
    By Example
    Documentation Style
    Doxygen
    Docbook
    Design Notes
    B. Porting and Maintenance -
    Configure and Build Hacking
    Prerequisites
    Overview: What Comes from Where
    Storing Information in non-AC files (like configure.host)
    Coding and Commenting Conventions
    The acinclude.m4 layout
    GLIBCXX_ENABLE, the --enable maker
    Porting to New Hardware or Operating Systems
    Operating System
    CPU
    Character Types
    Thread Safety
    Numeric Limits
    Libtool
    ABI Policy and Guidelines
    The C++ Interface
    Versioning
    Allowed Changes
    Prohibited Changes
    Implementation
    Testing
    Outstanding Issues
    API Evolution and Deprecation History
    3.0
    3.1
    3.2
    3.3
    3.4
    4.0
    4.1
    4.2
    4.3
    Backwards Compatibility
    First
    Second
    Third
    C. +
    Configure and Build Hacking
    Prerequisites
    Overview: What Comes from Where
    Storing Information in non-AC files (like configure.host)
    Coding and Commenting Conventions
    The acinclude.m4 layout
    GLIBCXX_ENABLE, the --enable maker
    Porting to New Hardware or Operating Systems
    Operating System
    CPU
    Character Types
    Thread Safety
    Numeric Limits
    Libtool
    Test
    Organization
    Running the Testsuite
    Writing a new test case
    Test Harness and Utilities
    ABI Policy and Guidelines
    The C++ Interface
    Versioning
    Allowed Changes
    Prohibited Changes
    Implementation
    Testing
    Outstanding Issues
    API Evolution and Deprecation History
    3.0
    3.1
    3.2
    3.3
    3.4
    4.0
    4.1
    4.2
    4.3
    Backwards Compatibility
    First
    Second
    Third
    C. Free Software Needs Free Documentation
    D. GNU General Public License version 3 -
    E. GNU Free Documentation License
    Index

    Chapter 1. Status

    Implementation Status

    C++ 1998/2003

    Implementation Status

    This status table is based on the table of contents of ISO/IEC 14882:2003.

    This page describes the C++0x support in mainline GCC SVN, not in any particular release. -

    Table 1.1. C++ 1998/2003 Implementation Status

    SectionDescriptionStatusComments
    +

    Table 1.1. C++ 1998/2003 Implementation Status

    SectionDescriptionStatusComments
    18 Language support @@ -90,7 +90,7 @@ particular release. class. But they are the mangled names; you will need to call c++filt and pass the names as command-line parameters to demangle them, or call a - runtime demangler function. + runtime demangler function. (The classes in <stdexcept> have constructors which require an argument to use later for what() calls, so the problem of what()'s value does not arise in most @@ -153,7 +153,7 @@ In this implementation the header names are prefixed by

    This page describes the TR1 support in mainline GCC SVN, not in any particular release. -

    Table 1.2. C++ TR1 Implementation Status

    SectionDescriptionStatusComments
    2General Utilities
    2.1Reference wrappers  
    2.1.1Additions to header <functional> synopsisY 
    2.1.2Class template reference_wrapper  
    2.1.2.1reference_wrapper construct/copy/destroyY 
    2.1.2.2reference_wrapper assignmentY 
    2.1.2.3reference_wrapper accessY 
    2.1.2.4reference_wrapper invocationY 
    2.1.2.5reference_wrapper helper functionsY 
    2.2Smart pointers  
    2.2.1Additions to header <memory> synopsisY 
    2.2.2Class bad_weak_ptrY 
    2.2.3Class template shared_ptr  +

    Table 1.2. C++ TR1 Implementation Status

    SectionDescriptionStatusComments
    2General Utilities
    2.1Reference wrappers  
    2.1.1Additions to header <functional> synopsisY 
    2.1.2Class template reference_wrapper  
    2.1.2.1reference_wrapper construct/copy/destroyY 
    2.1.2.2reference_wrapper assignmentY 
    2.1.2.3reference_wrapper accessY 
    2.1.2.4reference_wrapper invocationY 
    2.1.2.5reference_wrapper helper functionsY 
    2.2Smart pointers  
    2.2.1Additions to header <memory> synopsisY 
    2.2.2Class bad_weak_ptrY 
    2.2.3Class template shared_ptr 

    Uses code from boost::shared_ptr. @@ -171,7 +171,7 @@ presence of the required flag.

    This page describes the C++0x support in mainline GCC SVN, not in any particular release. -

    Table 1.3. C++ 200x Implementation Status

    SectionDescriptionStatusComments
    +

    Table 1.3. C++ 200x Implementation Status

    SectionDescriptionStatusComments
    18 Language support @@ -232,7 +232,35 @@ particular release. Appendix D Compatibility features -
    D.1Increment operator with bool operand  
    D.2static keyword  
    D.3Access declarations  
    D.4Implicit conversion from const strings  
    D.5C standard library headers  
    D.6Old iostreams members  
    D.7char* streams  
    D.8Binders  
    D.9auto_ptr  
    D.10Iterator primitives  


    C++ TR 24733

    +This table is based on the table of contents of +ISO/IEC TR 24733 Date: 2009-08-28 +Extension for the programming language C++ to support +decimal floating-point arithmetic +

    +This page describes the TR 24733 support in mainline GCC SVN, not in any +particular release. +

    Table 1.4. C++ TR 24733 Implementation Status

    SectionDescriptionStatusComments
    + 0 + + Introduction +
    + 1 + + Normative references +
    + 2 + + Conventions +
    + 3 + + Decimal floating-point types +
    3.1Characteristics of decimal floating-point types  
    3.2Decimal Types  
    3.2.1Class decimal synopsisPartialMissing declarations for formatted input/output; non-conforming extension for functions converting to integral type
    3.2.2Class decimal32PartialMissing 3.2.2.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
    3.2.3Class decimal64PartialMissing 3.2.3.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
    3.2.4Class decimal128PartialMissing 3.2.4.5 conversion to integral type; conforming extension for conversion from scalar decimal floating-point
    3.2.5Initialization from coefficient and exponentY 
    3.2.6Conversion to generic floating-point typeY 
    3.2.7Unary arithmetic operatorsY 
    3.2.8Binary arithmetic operatorsY 
    3.2.9Comparison operatorsY 
    3.2.10Formatted inputN 
    3.2.11Formatted outputN 
    3.3Additions to header limitsN 
    3.4Headers cfloat and float.h  
    3.4.2Additions to header cfloat synopsisY 
    3.4.3Additions to header float.h synopsisN 
    3.4.4Maximum finite valueY 
    3.4.5EpsilonY 
    3.4.6Minimum positive normal valueY 
    3.4.7Minimum positive subnormal valueY 
    3.4.8Evaluation formatY 
    3.5Additions to cfenv and fenv.hOutside the scope of GCC 
    3.6Additions to cmath and math.hOutside the scope of GCC 
    3.7Additions to cstdio and stdio.hOutside the scope of GCC 
    3.8Additions to cstdlib and stdlib.hOutside the scope of GCC 
    3.9Additions to cwchar and wchar.hOutside the scope of GCC 
    3.10FacetsN 
    3.11Type traitsN 
    3.12Hash functionsN 
    + 4 + + Notes on C compatibility +

    diff --git a/libstdc++-v3/doc/html/manual/strings.html b/libstdc++-v3/doc/html/manual/strings.html index c2e94a8bfd3..a1e78f27289 100644 --- a/libstdc++-v3/doc/html/manual/strings.html +++ b/libstdc++-v3/doc/html/manual/strings.html @@ -5,5 +5,5 @@
    Prev The GNU C++ Library Next

    diff --git a/libstdc++-v3/doc/html/manual/support.html b/libstdc++-v3/doc/html/manual/support.html index a539e63b3bf..fb217b89a0d 100644 --- a/libstdc++-v3/doc/html/manual/support.html +++ b/libstdc++-v3/doc/html/manual/support.html @@ -5,5 +5,5 @@
    Prev The GNU C++ Library Next

    diff --git a/libstdc++-v3/doc/html/manual/test.html b/libstdc++-v3/doc/html/manual/test.html index 9d95b85ea2e..80988a4febe 100644 --- a/libstdc++-v3/doc/html/manual/test.html +++ b/libstdc++-v3/doc/html/manual/test.html @@ -1,6 +1,9 @@ -Test

    Test

    +Test

    Test

    The libstdc++ testsuite includes testing for standard conformance, regressions, ABI, and performance.

    Organization

    Directory Layout

    @@ -486,4 +489,4 @@ only default variables.

    A number of class abstractions for performance counters, and reporting functions including: -

    • time_counter

    • resource_counter

    • report_performance

    +

    • time_counter

    • resource_counter

    • report_performance

    diff --git a/libstdc++-v3/doc/html/manual/using.html b/libstdc++-v3/doc/html/manual/using.html index 0a502094f7f..1d63cb53087 100644 --- a/libstdc++-v3/doc/html/manual/using.html +++ b/libstdc++-v3/doc/html/manual/using.html @@ -1,9 +1,9 @@ -Chapter 3. Using

    Chapter 3. Using

    Linking Library Binary Files

    If you only built a static library (libstdc++.a), or if you specified static linking, you don't have to worry about this. But if you built a shared library (libstdc++.so) and linked @@ -41,4 +41,4 @@ A libstdc++.la file is also installed, for use with Libtool. If you use Libtool to create your executables, these details are taken care of for you. -

    +

    diff --git a/libstdc++-v3/doc/html/manual/using_exceptions.html b/libstdc++-v3/doc/html/manual/using_exceptions.html index 6bc776c2c6c..5c74e93ac8f 100644 --- a/libstdc++-v3/doc/html/manual/using_exceptions.html +++ b/libstdc++-v3/doc/html/manual/using_exceptions.html @@ -1,6 +1,319 @@ -Exceptions

    Exceptions

    Propagating Exceptions aka Exception Neutrality

    -

    Exception Safety

    -

    Support for -fno-exceptions

    -

    +Exceptions

    Exceptions

    +The C++ language provides language support for stack unwinding +with try and catch blocks and +the throw keyword. +

    +These are very powerful constructs, and require some thought when +applied to the standard library in order to yield components that work +efficiently while cleaning up resources when unexpectedly killed via +exceptional circumstances. +

    +Two general topics of discussion follow: +exception neutrality and exception safety. +

    Exception Safety

    + What is exception-safe code? +

    + Will define this as reasonable and well-defined behavior by classes + and functions from the standard library when used by user-defined + classes and functions that are themselves exception safe. +

    + Please note that using exceptions in combination with templates + imposes an additional requirement for exception + safety. Instantiating types are required to have destructors that + do no throw. +

    + Using the layered approach from Abrahams, can classify library + components as providing set levels of safety. These will be called + exception guarantees, and can be divided into three categories. +

    • + One. Don't throw. +

      + As specified in 23.2.1 general container requirements. Applicable + to container and string classes. +

      + Member + functions erase, pop_back, pop_front, swap, clear. And iterator + copy constructor and assignment operator. +

    • + Two. Don't leak resources when exceptions are thrown. This is + also referred to as the “basic” exception safety guarantee. +

      + This applicable throughout the standard library. +

    • + Three. Commit-or-rollback semantics. This is + referred to as “strong” exception safety guarantee. +

      + As specified in 23.2.1 general container requirements. Applicable + to container and string classes. +

      + Member functions insert of a single + element, push_back, push_front, + and rehash. +

    Exception Neutrality

    + Simply put, once thrown an exception object should continue in + flight unless handled explicitly. In practice, this means + propagating exceptions should not be swallowed in + gratuitous catch(...) blocks. Instead, + matching try and catch + blocks should have specific catch handlers and allow un-handed + exception objects to propagate. If a + terminating catch(...) blocks exist then it + should end with a throw to re-throw the current + exception. +

    + Why do this? +

    + By allowing exception objects to propagate, a more flexible + approach to error handling is made possible (although not + required.) Instead of dealing with an error immediately, one can + allow the exception to propagate up until sufficient context is + available and the choice of exiting or retrying can be made in an + informed manner. +

    + Unfortunately, this tends to be more of a guideline than a strict + rule as applied to the standard library. As such, the following is + a list of known problem areas where exceptions are not propagated. +

    • + Input/Output +

      + The destructor ios_base::Init::~Init() + swallows all exceptions from flush called on + all open streams at termination. +

      + All formatted input in basic_istream or + formatted output in basic_ostream can be + configured to swallow exceptions + when exceptions is set to + ignore ios_base::badbit. +

      + Functions that have been registered + with ios_base::register_callback swallow all + exceptions when called as part of a callback event. +

      + When closing the underlying + file, basic_filebuf::close will swallow + (non-cancellation) exceptions thrown and return NULL. +

    • + Thread +

      + The constructors of thread that take a + callable function argument swallow all exceptions resulting from + executing the function argument. +

    Doing without

    + C++ is a language that strives to be as efficient as is possible + in delivering features. As such, considerable care is used by both + language implementer and designers to make sure unused features + not impose hidden or unexpected costs. The GNU system tries to be + as flexible and as configurable as possible. So, it should come as + no surprise that GNU C++ provides an optional language extension, + spelled -fno-exceptions, as a way to excise the + implicitly generated magic necessary to + support try and catch blocks + and thrown objects. (Language support + for -fno-exceptions is documented in the GNU + GCC manual.) +

    Before detailing the library support + for -fno-exceptions, first a passing note on + the things lost when this flag is used: it will break exceptions + trying to pass through code compiled + with -fno-exceptions whether or not that code + has any try or catch + constructs. If you might have some code that throws, you shouldn't + use -fno-exceptions. If you have some code that + uses try or catch, you + shouldn't use -fno-exceptions. +

    + And what it to be gained, tinkering in the back alleys with a + language like this? Exception handling overhead can be measured + in the size of the executable binary, and varies with the + capabilities of the underlying operating system and specific + configuration of the C++ compiler. On recent hardware with GNU + system software of the same age, the combined code and data size + overhead for enabling exception handling is around 7%. Of course, + if code size is of singular concern than using the appropriate + optimizer setting with exception handling enabled + (ie, -Os -fexceptions) may save up to twice + that, and preserve error checking. +

    + So. Hell bent, we race down the slippery track, knowing the brakes + are a little soft and that the right front wheel has a tendency to + wobble at speed. Go on: detail the standard library support + for -fno-exceptions. +

    + In sum, valid C++ code with exception handling is transformed into + a dialect without exception handling. In detailed steps: all use + of the C++ + keywords try, catch, + and throw in the standard library have been + permanently replaced with the pre-processor controlled equivalents + spelled __try, __catch, + and __throw_exception_again. They are defined + as follows. +

    +#ifdef __EXCEPTIONS
    +# define __try      try
    +# define __catch(X) catch(X)
    +# define __throw_exception_again throw
    +#else
    +# define __try      if (true)
    +# define __catch(X) if (false)
    +# define __throw_exception_again
    +#endif
    +

    + In addition, for every object derived from + class exception, there exists a corresponding + function with C language linkage. An example: +

    +#ifdef __EXCEPTIONS
    +  void __throw_bad_exception(void)
    +  { throw bad_exception(); }
    +#else
    +  void __throw_bad_exception(void)
    +  { abort(); }
    +#endif
    +

    + The last language feature needing to be transformed + by -fno-exceptions is treatment of exception + specifications on member functions. Fortunately, the compiler deals + with this by ignoring exception specifications and so no alternate + source markup is needed. +

    + By using this combination of language re-specification by the + compiler, and the pre-processor tricks and the functional + indirection layer for thrown exception objects by the library, + libstdc++ files can be compiled + with -fno-exceptions. +

    + User code that uses C++ keywords + like throw, try, + and catch will produce errors even if the user + code has included libstdc++ headers and is using constructs + like basic_iostream. Even though the standard + library has been transformed, user code may need modification. User + code that attempts or expects to do error checking on standard + library components compiled with exception handling disabled should + be evaluated and potentially made conditional. +

    + Some issues remain with this approach (see bugzilla entry + 25191). Code paths are not equivalent, in + particular catch blocks are not evaluated. Also + problematic are throw expressions expecting a + user-defined throw handler. Known problem areas in the standard + library include using an instance + of basic_istream + with exceptions set to specific + ios_base::iostate conditions, or + cascading catch blocks that dispatch error + handling or recovery efforts based on the type of exception object + thrown. +

    + Oh, and by the way: none of this hackery is at all + special. (Although perhaps well-deserving of a raised eyebrow.) + Support continues to evolve and may change in the future. Similar + and even additional techniques are used in other C++ libraries and + compilers. +

    + C++ hackers with a bent for language and control-flow purity have + been successfully consoled by grizzled C veterans lamenting the + substitution of the C language keyword + const with the uglified + doppelganger __const. +

    Compatibility

    With C

    + C language code that is expecting to interoperate with C++ should be + compiled with -fexceptions. This will make + debugging a C language function called as part of C++-induced stack + unwinding possible. +

    + In particular, unwinding into a frame with no exception handling +data will cause a runtime abort. If the unwinder runs out of unwind +info before it finds a handler, std::terminate() +is called. +

    + Please note that most development environments should take care of + getting these details right. For GNU systems, all appropriate parts + of the GNU C library are already compiled + with -fexceptions. +

    With POSIX thread cancellation

    + GNU systems re-use some of the exception handling mechanisms to + track control flow for POSIX thread cancellation. +

    + Cancellation points are functions defined by POSIX as worthy of + special treatment. The standard library may use some of these + functions to implement parts of the ISO C++ standard or depend on + them for extensions. +

    + Of note: +

    + nanosleep, + read, write, open, close, + and wait. +

    + The parts of libstdc++ that use C library functions marked as + cancellation points should take pains to be exception neutral. + Failing this, catch blocks have been augmented to + show that the POSIX cancellation object is in flight. +

    + This augmentation adds a catch block + for __cxxabiv1::__forced_unwind, which is the + object representing the POSIX cancellation object. Like so: +

    +  catch(const __cxxabiv1::__forced_unwind&)
    +  {
    +    this->_M_setstate(ios_base::badbit);
    +    throw;
    +  }
    +  catch(...)
    +  { this->_M_setstate(ios_base::badbit); }
    +

    Bibliography

    + System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) + . + 2.9.5 Thread Cancellation + . Copyright © 2008 + The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. + + + .

    + Error and Exception Handling + . David Abrahams . + Boost + . + + + .

    + Exception-Safety in Generic Components + . David Abrahams. + Boost + . + + + .

    + Standard Library Exception Policy + . Matt Austern. + WG21 N1077 + . + + + .

    + ia64 c++ abi exception handling + . Richard Henderson. + GNU + . + + + .

    + Appendix E: Standard-Library Exception Safety + . Bjarne Stroustrup. + + + .

    + Exceptional C++ + . + Exception-Safety Issues and Techniques + . Herb Sutter.

    + exception_defines.h #defines try/catch + . + GCC Bug 25191 + . + .

    diff --git a/libstdc++-v3/doc/html/manual/using_headers.html b/libstdc++-v3/doc/html/manual/using_headers.html index a7b21388bd2..4986fe585a3 100644 --- a/libstdc++-v3/doc/html/manual/using_headers.html +++ b/libstdc++-v3/doc/html/manual/using_headers.html @@ -20,16 +20,19 @@ upcoming 200x standard.

    C++98/03 include files. These are available in the default compilation mode, i.e. -std=c++98 or -std=gnu++98. -

    Table 3.1. C++ 1998 Library Headers

    algorithmbitsetcomplexdequeexception
    fstreamfunctionaliomanipiosiosfwd
    iostreamistreamiteratorlimitslist
    localemapmemorynewnumeric
    ostreamqueuesetsstreamstack
    stdexceptstreambufstringutilitytypeinfo
    valarrayvector   

    Table 3.2. C++ 1998 Library Headers for C Library Facilities

    cassertcerrnocctypecfloatciso646
    climitsclocalecmathcsetjmpcsignal
    cstdargcstddefcstdiocstdlibcstring
    ctimecwcharcwctype  

    +

    Table 3.1. C++ 1998 Library Headers

    algorithmbitsetcomplexdequeexception
    fstreamfunctionaliomanipiosiosfwd
    iostreamistreamiteratorlimitslist
    localemapmemorynewnumeric
    ostreamqueuesetsstreamstack
    stdexceptstreambufstringutilitytypeinfo
    valarrayvector   

    Table 3.2. C++ 1998 Library Headers for C Library Facilities

    cassertcerrnocctypecfloatciso646
    climitsclocalecmathcsetjmpcsignal
    cstdargcstddefcstdiocstdlibcstring
    ctimecwcharcwctype  

    C++0x include files. These are only available in C++0x compilation mode, i.e. -std=c++0x or -std=gnu++0x. -

    Table 3.3. C++ 200x Library Headers

    algorithmarraybitsetchronocomplex
    condition_variabledequeexceptionforward_listfstream
    functionalinitalizer_listiomanipiosiosfwd
    iostreamistreamiteratorlimitslist
    localemapmemorymutexnew
    numericostreamqueuerandomratio
    regexsetsstreamstackstdexcept
    streambufstringsystem_errorthreadtuple
    type_traitstypeinfounordered_mapunordered_setutility
    valarrayvector   

    Table 3.4. C++ 200x Library Headers for C Library Facilities

    cassertccomplexcctypecerrnocfenv
    cfloatcinttypesciso646climitsclocale
    cmathcsetjmpcsignalcstdargcstdatomic
    cstdboolcstddefcstdintcstdlibcstdio
    cstringctgmathctimecucharcwchar
    cwctypestdatomic.h   

    +

    Table 3.3. C++ 200x Library Headers

    algorithmarraybitsetchronocomplex
    condition_variabledequeexceptionforward_listfstream
    functionalfutureinitalizer_listiomanipios
    iosfwdiostreamistreamiteratorlimits
    listlocalemapmemorymutex
    newnumericostreamqueuerandom
    ratioregexsetsstreamstack
    stdexceptstreambufstringsystem_errorthread
    tupletype_traitstypeinfounordered_mapunordered_set
    utilityvalarrayvector  

    Table 3.4. C++ 200x Library Headers for C Library Facilities

    cassertccomplexcctypecerrnocfenv
    cfloatcinttypesciso646climitsclocale
    cmathcsetjmpcsignalcstdargcstdatomic
    cstdboolcstddefcstdintcstdlibcstdio
    cstringctgmathctimecucharcwchar
    cwctypestdatomic.h   

    In addition, TR1 includes as: -

    Table 3.5. C++ TR1 Library Headers

    tr1/arraytr1/complextr1/memorytr1/functionaltr1/random
    tr1/regextr1/tupletr1/type_traitstr1/unordered_maptr1/unordered_set
    tr1/utility    

    Table 3.6. C++ TR1 Library Headers for C Library Facilities

    tr1/ccomplextr1/cfenvtr1/cfloattr1/cmathtr1/cinttypes
    tr1/climitstr1/cstdargtr1/cstdbooltr1/cstdinttr1/cstdio
    tr1/cstdlibtr1/ctgmathtr1/ctimetr1/cwchartr1/cwctype

    +

    Table 3.5. C++ TR 1 Library Headers

    tr1/arraytr1/complextr1/memorytr1/functionaltr1/random
    tr1/regextr1/tupletr1/type_traitstr1/unordered_maptr1/unordered_set
    tr1/utility    

    Table 3.6. C++ TR 1 Library Headers for C Library Facilities

    tr1/ccomplextr1/cfenvtr1/cfloattr1/cmathtr1/cinttypes
    tr1/climitstr1/cstdargtr1/cstdbooltr1/cstdinttr1/cstdio
    tr1/cstdlibtr1/ctgmathtr1/ctimetr1/cwchartr1/cwctype

    Decimal floating-point arithmetic is available if the C++ +compiler supports scalar decimal floating-point types defined via +__attribute__((mode(SD|DD|LD))). +

    Table 3.7. C++ TR 24733 Decimal Floating-Point Header

    decimal/decimal

    Also included are files for the C++ ABI interface: -

    Table 3.7. C++ ABI Headers

    cxxabi.hcxxabi_forced.h

    +

    Table 3.8. C++ ABI Headers

    cxxabi.hcxxabi_forced.h

    And a large variety of extensions. -

    Table 3.8. Extension Headers

    ext/algorithmext/atomicity.hext/array_allocator.hext/bitmap_allocator.hext/cast.h
    ext/codecvt_specializations.hext/concurrence.hext/debug_allocator.hext/enc_filebuf.hext/extptr_allocator.h
    ext/functionalext/iteratorext/malloc_allocator.hext/memoryext/mt_allocator.h
    ext/new_allocator.hext/numericext/numeric_traits.hext/pb_ds/assoc_container.hext/pb_ds/priority_queue.h
    ext/pod_char_traits.hext/pool_allocator.hext/rb_treeext/ropeext/slist
    ext/stdio_filebuf.hext/stdio_sync_filebuf.hext/throw_allocator.hext/typelist.hext/type_traits.h
    ext/vstring.h    

    Table 3.9. Extension Debug Headers

    debug/bitsetdebug/dequedebug/listdebug/mapdebug/set
    debug/stringdebug/unordered_mapdebug/unordered_setdebug/vector 

    Table 3.10. Extension Parallel Headers

    parallel/algorithmparallel/numeric

    Mixing Headers

    A few simple rules. +

    Table 3.9. Extension Headers

    ext/algorithmext/atomicity.hext/array_allocator.hext/bitmap_allocator.hext/cast.h
    ext/codecvt_specializations.hext/concurrence.hext/debug_allocator.hext/enc_filebuf.hext/extptr_allocator.h
    ext/functionalext/iteratorext/malloc_allocator.hext/memoryext/mt_allocator.h
    ext/new_allocator.hext/numericext/numeric_traits.hext/pb_ds/assoc_container.hext/pb_ds/priority_queue.h
    ext/pod_char_traits.hext/pool_allocator.hext/rb_treeext/ropeext/slist
    ext/stdio_filebuf.hext/stdio_sync_filebuf.hext/throw_allocator.hext/typelist.hext/type_traits.h
    ext/vstring.h    

    Table 3.10. Extension Debug Headers

    debug/bitsetdebug/dequedebug/listdebug/mapdebug/set
    debug/stringdebug/unordered_mapdebug/unordered_setdebug/vector 

    Table 3.11. Extension Profile Headers

    profile/bitsetprofile/dequeprofile/listprofile/map
    profile/setprofile/unordered_mapprofile/unordered_setprofile/vector

    Table 3.12. Extension Parallel Headers

    parallel/algorithmparallel/numeric

    Mixing 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

    diff --git a/libstdc++-v3/doc/html/manual/utilities.html b/libstdc++-v3/doc/html/manual/utilities.html
    index ca5573140d2..26cef8e6d18 100644
    --- a/libstdc++-v3/doc/html/manual/utilities.html
    +++ b/libstdc++-v3/doc/html/manual/utilities.html
    @@ -1,9 +1,9 @@
     
     
    -Part IV.  Utilities
    +  
    +
    diff --git a/libstdc++-v3/doc/html/spine.html b/libstdc++-v3/doc/html/spine.html index 6df1f0173bc..4d153da62b4 100644 --- a/libstdc++-v3/doc/html/spine.html +++ b/libstdc++-v3/doc/html/spine.html @@ -1,17 +1,17 @@ -The GNU C++ Library Documentation

    The GNU C++ Library Documentation

    Paolo Carlini

    Phil Edwards

    Doug Gregor

    Benjamin Kosnik

    Dhruv Matani

    Jason Merrill

    Mark Mitchell

    Nathan Myers

    Felix Natter

    Stefan Olsson

    Johannes Singler

    Ami Tavory

    Jonathan Wakely

    The GNU C++ Library Documentation

    Paolo Carlini

    Phil Edwards

    Doug Gregor

    Benjamin Kosnik

    Dhruv Matani

    Jason Merrill

    Mark Mitchell

    Nathan Myers

    Felix Natter

    Stefan Olsson

    Silvius Rus

    Johannes Singler

    Ami Tavory

    Jonathan Wakely


    Table of Contents

    The GNU C++ Library
    I. Introduction -
    1. Status
    Implementation Status
    C++ 1998/2003
    C++ TR1
    C++ 200x
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Prerequisites
    Configure
    Make
    Test
    Organization
    Running the Testsuite
    Writing a new test case
    Test Harness and Utilities
    3. Using
    Linking Library Binary Files
    Headers
    Header Files
    Mixing Headers
    The C Headers and namespace std
    Precompiled Headers
    Namespaces
    Available Namespaces
    namespace std
    Using Namespace Composition
    Macros
    Concurrency
    Prerequisites
    Thread Safety
    Atomics
    IO
    Containers
    Exceptions
    Propagating Exceptions aka Exception Neutrality
    Exception Safety
    Support for -fno-exceptions
    Debugging Support
    Using g++
    Debug Versions of Library Binary Files
    Memory Leak Hunting
    Using gdb
    Tracking uncaught exceptions
    Debug Mode
    Compile Time Checking
    II. +
    1. Status
    Implementation Status
    C++ 1998/2003
    C++ TR1
    C++ 200x
    C++ TR 24733
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Prerequisites
    Configure
    Make
    3. Using
    Linking Library Binary Files
    Headers
    Header Files
    Mixing Headers
    The C Headers and namespace std
    Precompiled Headers
    Namespaces
    Available Namespaces
    namespace std
    Using Namespace Composition
    Macros
    Concurrency
    Prerequisites
    Thread Safety
    Atomics
    IO
    Containers
    Exceptions
    Exception Safety
    Exception Neutrality
    Doing without
    Compatibility
    Debugging Support
    Using g++
    Debug Versions of Library Binary Files
    Memory Leak Hunting
    Using gdb
    Tracking uncaught exceptions
    Debug Mode
    Compile Time Checking
    Profile-based Performance Analysis
    II. Support
    4. Types
    Fundamental Types
    Numeric Properties
    NULL
    5. Dynamic Memory
    6. Termination
    Termination Handlers
    Verbose Terminate Handler
    III. Diagnostics -
    7. Exceptions
    Exception Classes
    Adding Data to Exceptions
    Cancellation
    8. Concept Checking
    IV. +
    7. Exceptions
    Exception Classes
    Adding Data to Exceptions
    8. Concept Checking
    IV. Utilities
    9. Functors
    10. Pairs
    11. Memory
    Allocators
    Requirements
    Design Issues
    Implementation
    Using a Specific Allocator
    Custom Allocators
    Extension Allocators
    auto_ptr
    Limitations
    Use in Containers
    shared_ptr
    Requirements
    Design Issues
    Implementation
    Use
    Acknowledgments
    12. Traits
    V. @@ -38,13 +38,13 @@
    24. Iostream Objects
    25. Stream Buffers
    Derived streambuf Classes
    Buffering
    26. Memory Based Streams
    Compatibility With strstream
    27. File Based Streams
    Copying a File
    Binary Input and Output
    28. Interacting with C
    Using FILE* and file descriptors
    Performance
    XII. Extensions -
    29. Compile Time Checks
    30. Debug Mode
    Intro
    Semantics
    Using
    Using the Debug Mode
    Using a Specific Debug Container
    Design
    Goals
    Methods
    Other Implementations
    31. Parallel Mode
    Intro
    Semantics
    Using
    Prerequisite Compiler Flags
    Using Parallel Mode
    Using Specific Parallel Components
    Design
    Interface Basics
    Configuration and Tuning
    Implementation Namespaces
    Testing
    Bibliography
    32. Allocators
    mt_allocator
    Intro
    Design Issues
    Implementation
    Single Thread Example
    Multiple Thread Example
    bitmap_allocator
    Design
    Implementation
    33. Containers
    Policy Based Data Structures
    HP/SGI
    Deprecated HP/SGI
    34. Utilities
    35. Algorithms
    36. Numerics
    37. Iterators
    38. Input and Output
    Derived filebufs
    39. Demangling
    40. Concurrency
    Design
    Interface to Locks and Mutexes
    Interface to Atomic Functions
    Implementation
    Using Builtin Atomic Functions
    Thread Abstraction
    Use
    A. +
    29. Compile Time Checks
    30. Debug Mode
    Intro
    Semantics
    Using
    Using the Debug Mode
    Using a Specific Debug Container
    Design
    Goals
    Methods
    Other Implementations
    31. Parallel Mode
    Intro
    Semantics
    Using
    Prerequisite Compiler Flags
    Using Parallel Mode
    Using Specific Parallel Components
    Design
    Interface Basics
    Configuration and Tuning
    Implementation Namespaces
    Testing
    Bibliography
    32. Profile Mode
    Intro
    Using the Profile Mode
    Tuning the Profile Mode
    Design
    Wrapper Model
    Instrumentation
    Run Time Behavior
    Analysis and Diagnostics
    Cost Model
    Reports
    Testing
    Extensions for Custom Containers
    Empirical Cost Model
    Implementation Issues
    Stack Traces
    Symbolization of Instruction Addresses
    Concurrency
    Using the Standard Library in the Instrumentation Implementation
    Malloc Hooks
    Construction and Destruction of Global Objects
    Developer Information
    Big Picture
    How To Add A Diagnostic
    Diagnostics
    Diagnostic Template
    Containers
    Algorithms
    Data Locality
    Multithreaded Data Access
    Statistics
    Bibliography
    33. Allocators
    mt_allocator
    Intro
    Design Issues
    Implementation
    Single Thread Example
    Multiple Thread Example
    bitmap_allocator
    Design
    Implementation
    34. Containers
    Policy Based Data Structures
    HP/SGI
    Deprecated HP/SGI
    35. Utilities
    36. Algorithms
    37. Numerics
    38. Iterators
    39. Input and Output
    Derived filebufs
    40. Demangling
    41. Concurrency
    Design
    Interface to Locks and Mutexes
    Interface to Atomic Functions
    Implementation
    Using Builtin Atomic Functions
    Thread Abstraction
    Use
    A. Contributing
    Contributor Checklist
    Reading
    Assignment
    Getting Sources
    Submitting Patches
    Directory Layout and Source Conventions
    Coding Style
    Bad Identifiers
    By Example
    Documentation Style
    Doxygen
    Docbook
    Design Notes
    B. Porting and Maintenance -
    Configure and Build Hacking
    Prerequisites
    Overview: What Comes from Where
    Storing Information in non-AC files (like configure.host)
    Coding and Commenting Conventions
    The acinclude.m4 layout
    GLIBCXX_ENABLE, the --enable maker
    Porting to New Hardware or Operating Systems
    Operating System
    CPU
    Character Types
    Thread Safety
    Numeric Limits
    Libtool
    ABI Policy and Guidelines
    The C++ Interface
    Versioning
    Allowed Changes
    Prohibited Changes
    Implementation
    Testing
    Outstanding Issues
    API Evolution and Deprecation History
    3.0
    3.1
    3.2
    3.3
    3.4
    4.0
    4.1
    4.2
    4.3
    Backwards Compatibility
    First
    Second
    Third
    C. +
    Configure and Build Hacking
    Prerequisites
    Overview: What Comes from Where
    Storing Information in non-AC files (like configure.host)
    Coding and Commenting Conventions
    The acinclude.m4 layout
    GLIBCXX_ENABLE, the --enable maker
    Porting to New Hardware or Operating Systems
    Operating System
    CPU
    Character Types
    Thread Safety
    Numeric Limits
    Libtool
    Test
    Organization
    Running the Testsuite
    Writing a new test case
    Test Harness and Utilities
    ABI Policy and Guidelines
    The C++ Interface
    Versioning
    Allowed Changes
    Prohibited Changes
    Implementation
    Testing
    Outstanding Issues
    API Evolution and Deprecation History
    3.0
    3.1
    3.2
    3.3
    3.4
    4.0
    4.1
    4.2
    4.3
    Backwards Compatibility
    First
    Second
    Third
    C. Free Software Needs Free Documentation
    D. -- cgit v1.2.1