From 41061822aad7a3a3e735c29e7c0832d069b40617 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Thu, 28 Aug 2008 00:44:45 +0000 Subject: [PATCH] Makefile.am: Edit xml file list. 2008-08-27 Benjamin Kosnik * doc/Makefile.am: Edit xml file list. * doc/Makefile.in: Regenerate. * configure: Regenerate. * doc/xml/manual/intro.xml: Edit, correct links, structure. * doc/xml/manual/configure.xml: Same. * doc/xml/manual/debug.xml: Same. * doc/xml/manual/test.xml: Same. * doc/xml/manual/build.xml: Remove. * doc/xml/manual/prerequisites.xml: Add. * doc/html/*: Regenerate. From-SVN: r139690 --- libstdc++-v3/ChangeLog | 13 + libstdc++-v3/configure | 6 +- libstdc++-v3/doc/Makefile.am | 2 +- libstdc++-v3/doc/Makefile.in | 2 +- libstdc++-v3/doc/html/api.html | 2 +- libstdc++-v3/doc/html/manual/abi.html | 20 +- libstdc++-v3/doc/html/manual/api.html | 4 +- libstdc++-v3/doc/html/manual/backwards.html | 48 +-- .../doc/html/manual/bitmap_allocator.html | 2 +- .../doc/html/manual/bk01pt01ch01.html | 4 +- .../doc/html/manual/bk01pt01ch02.html | 275 +++++--------- .../doc/html/manual/bk01pt01ch02s03.html | 9 + .../doc/html/manual/bk01pt01ch03s02.html | 10 +- .../doc/html/manual/bk01pt01ch03s04.html | 2 +- .../doc/html/manual/bk01pt02pr01.html | 2 +- .../doc/html/manual/bk01pt04ch11.html | 20 +- .../doc/html/manual/bk01pt06ch14.html | 14 +- .../doc/html/manual/bk01pt06ch15.html | 16 +- .../doc/html/manual/bk01pt09pr02.html | 2 +- .../doc/html/manual/bk01pt12ch30s03.html | 4 +- .../doc/html/manual/bk01pt12ch31s03.html | 2 +- .../doc/html/manual/bk01pt12pr03.html | 2 +- libstdc++-v3/doc/html/manual/build.html | 95 ----- libstdc++-v3/doc/html/manual/codecvt.html | 20 +- libstdc++-v3/doc/html/manual/configure.html | 199 ++++++++++ libstdc++-v3/doc/html/manual/debug.html | 31 +- libstdc++-v3/doc/html/manual/intro.html | 2 +- libstdc++-v3/doc/html/manual/messages.html | 18 +- .../doc/html/manual/parallel_mode.html | 4 +- libstdc++-v3/doc/html/manual/shared_ptr.html | 22 +- libstdc++-v3/doc/html/manual/spine.html | 4 +- libstdc++-v3/doc/html/manual/test.html | 180 ++++----- libstdc++-v3/doc/html/spine.html | 2 +- libstdc++-v3/doc/xml/manual/configure.xml | 38 +- libstdc++-v3/doc/xml/manual/debug.xml | 35 +- libstdc++-v3/doc/xml/manual/intro.xml | 51 ++- .../manual/{build.xml => prerequisites.xml} | 48 +-- libstdc++-v3/doc/xml/manual/test.xml | 355 +++++++++--------- 38 files changed, 801 insertions(+), 764 deletions(-) create mode 100644 libstdc++-v3/doc/html/manual/bk01pt01ch02s03.html delete mode 100644 libstdc++-v3/doc/html/manual/build.html create mode 100644 libstdc++-v3/doc/html/manual/configure.html rename libstdc++-v3/doc/xml/manual/{build.xml => prerequisites.xml} (74%) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ad7aa94cb32..43a027c81f7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,16 @@ +2008-08-27 Benjamin Kosnik + + * doc/Makefile.am: Edit xml file list. + * doc/Makefile.in: Regenerate. + * configure: Regenerate. + * doc/xml/manual/intro.xml: Edit, correct links, structure. + * doc/xml/manual/configure.xml: Same. + * doc/xml/manual/debug.xml: Same. + * doc/xml/manual/test.xml: Same. + * doc/xml/manual/build.xml: Remove. + * doc/xml/manual/prerequisites.xml: Add. + * doc/html/*: Regenerate. + 2008-08-27 Paolo Carlini * include/tr1_impl/hashtable (_Hashtable<>): Add missing pointer and diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index d53fe36ece6..bbeb6f34d80 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -14157,7 +14157,7 @@ _ACEOF -# Checks for compiler support that doesn't require linking. +# Checks for compiler support that don't require linking. # All these tests are for C++; save the language and the compiler flags. # The CXXFLAGS thing is suspicious, but based on similar bits previously @@ -17363,7 +17363,7 @@ _ACEOF fi -# Checks for operating systems support that doesn't require linking. +# Checks for operating systems support that don't require linking. echo "$as_me:$LINENO: checking for EOWNERDEAD" >&5 @@ -103227,7 +103227,7 @@ esac fi - # At some point, we should differentiate between aritectures + # At some point, we should differentiate between architectures # like x86, which have long double versions, and alpha/powerpc/etc., # which don't. For the time being, punt. if test x"long_double_math_on_this_cpu" = x"yes"; then diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am index 3b2cfbb0af7..d9c30426152 100644 --- a/libstdc++-v3/doc/Makefile.am +++ b/libstdc++-v3/doc/Makefile.am @@ -79,7 +79,6 @@ xml_sources = \ ${xml_srcdir}/manual/auto_ptr.xml \ ${xml_srcdir}/manual/backwards_compatibility.xml \ ${xml_srcdir}/manual/bitmap_allocator.xml \ - ${xml_srcdir}/manual/build.xml \ ${xml_srcdir}/manual/build_hacking.xml \ ${xml_srcdir}/manual/codecvt.xml \ ${xml_srcdir}/manual/concurrency.xml \ @@ -101,6 +100,7 @@ xml_sources = \ ${xml_srcdir}/manual/mt_allocator.xml \ ${xml_srcdir}/manual/numerics.xml \ ${xml_srcdir}/manual/parallel_mode.xml \ + ${xml_srcdir}/manual/prerequisites.xml \ ${xml_srcdir}/manual/internals.xml \ ${xml_srcdir}/manual/shared_ptr.xml \ ${xml_srcdir}/manual/spine.xml \ diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index a5c842f2ce8..17c2e864d3c 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -304,7 +304,6 @@ xml_sources = \ ${xml_srcdir}/manual/auto_ptr.xml \ ${xml_srcdir}/manual/backwards_compatibility.xml \ ${xml_srcdir}/manual/bitmap_allocator.xml \ - ${xml_srcdir}/manual/build.xml \ ${xml_srcdir}/manual/build_hacking.xml \ ${xml_srcdir}/manual/codecvt.xml \ ${xml_srcdir}/manual/concurrency.xml \ @@ -326,6 +325,7 @@ xml_sources = \ ${xml_srcdir}/manual/mt_allocator.xml \ ${xml_srcdir}/manual/numerics.xml \ ${xml_srcdir}/manual/parallel_mode.xml \ + ${xml_srcdir}/manual/prerequisites.xml \ ${xml_srcdir}/manual/internals.xml \ ${xml_srcdir}/manual/shared_ptr.xml \ ${xml_srcdir}/manual/spine.xml \ diff --git a/libstdc++-v3/doc/html/api.html b/libstdc++-v3/doc/html/api.html index 26bebed1a39..a502be4b11c 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/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index bceda223735..66a60c03ec9 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -436,54 +436,54 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. 24660: versioning weak symbols in libstdc++

19664: libstdc++ headers should have pop/push of the visibility around the declarations -

Bibliography

+

Bibliography

ABIcheck, a vague idea of checking ABI compatibility . - .

+ .

C++ ABI Reference . - .

+ .

Intel® Compilers for Linux* -Compatibility with the GNU Compilers . - .

+ .

Intel® Compilers for Linux* -Compatibility with the GNU Compilers . - .

+ .

Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386) . - .

+ .

Sun Solaris 2.9 : C++ Migration Guide (document 816-2459) . - .

+ .

ELF Symbol Versioning . Ulrich Drepper. - .

+ .

C++ ABI for the ARM Architecture . - .

+ .

Dynamic Shared Objects: Survey and Issues . ISO C++ J16/06-0046 . Benjamin Kosnik. - .

+ .

Versioning With Namespaces . ISO C++ J16/06-0083 diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 4b093b1cbf4..95e7636f5b3 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -72,11 +72,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/backwards.html b/libstdc++-v3/doc/html/manual/backwards.html index 4e7f6e33c98..b0e62138d1e 100644 --- a/libstdc++-v3/doc/html/manual/backwards.html +++ b/libstdc++-v3/doc/html/manual/backwards.html @@ -14,8 +14,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 @@ -41,7 +41,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. @@ -105,7 +105,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.

  • @@ -118,7 +118,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.). @@ -151,7 +151,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)
@@ -177,7 +177,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
@@ -185,7 +185,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). @@ -203,12 +203,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 @@ -296,14 +296,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 @@ -361,7 +361,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. @@ -433,7 +433,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 @@ -505,7 +505,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 @@ -516,7 +516,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 @@ -539,7 +539,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.

@@ -607,7 +607,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.

@@ -684,7 +684,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.

@@ -896,27 +896,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 5e6458dcd29..cafa08ff825 100644 --- a/libstdc++-v3/doc/html/manual/bitmap_allocator.html +++ b/libstdc++-v3/doc/html/manual/bitmap_allocator.html @@ -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 32.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 diff --git a/libstdc++-v3/doc/html/manual/bk01pt01ch01.html b/libstdc++-v3/doc/html/manual/bk01pt01ch01.html index 688f019c03a..82a2e92355d 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt01ch01.html +++ b/libstdc++-v3/doc/html/manual/bk01pt01ch01.html @@ -6101,7 +6101,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.1. C++ TR1 Implementation Status

SectionDescriptionDoneBrokenMissingComments
2General Utilities
2.1Reference wrappersdone   
2.1.1Additions to header <functional> synopsisdone   
2.1.2Class template reference_wrapperdone   
2.1.2.1reference_wrapper construct/copy/destroydone   
2.1.2.2reference_wrapper assignmentdone   
2.1.2.3reference_wrapper accessdone   
2.1.2.4reference_wrapper invocationdone   
2.1.2.5reference_wrapper helper functionsdone   
2.2Smart pointersdone   
2.2.1Additions to header <memory> synopsisdone   
2.2.2Class bad_weak_ptrdone   
2.2.3Class template shared_ptrdone  See Footnotes
2.2.3.1shared_ptr constructorsdone   
2.2.3.2shared_ptr destructordone   
2.2.3.3shared_ptr assignmentdone   
2.2.3.4shared_ptr modifiersdone   
2.2.3.5shared_ptr observersdone   
2.2.3.6shared_ptr comparisondone   
2.2.3.7shared_ptr I/Odone   
2.2.3.8shared_ptr specialized algorithmsdone   
2.2.3.9shared_ptr castsdone   
2.2.3.10get_deleterdone   
2.2.4Class template weak_ptrdone   
2.2.4.1weak_ptr constructorsdone   
2.2.4.2weak_ptr destructordone   
2.2.4.3weak_ptr assignmentdone   
2.2.4.4weak_ptr modifiersdone   
2.2.4.5weak_ptr observersdone   
2.2.4.6weak_ptr comparisondone   
2.2.4.7weak_ptr specialized algorithmsdone   
2.2.5Class template enable_shared_from_thisdone   
3Function Objects
3.1Definitionsdone   
3.2Additions to <functional> synopsisdone   
3.3Requirementsdone   
3.4Function return typesdone   
3.5Function template mem_fndone   
3.6Function object bindersdone   
3.6.1Class template is_bind_expressiondone   
3.6.2Class template is_placeholderdone   
3.6.3Function template binddone   
3.6.4Placeholdersdone   
3.7Polymorphic function wrappersdone   
3.7.1Class bad_function_calldone   
3.7.1.1bad_function_call constructordone   
3.7.2Class template functiondone   
3.7.2.1function construct/copy/destroydone   
3.7.2.2function modifiersdone   
3.7.2.3function capacitydone   
3.7.2.4function invocationdone   
3.7.2.5function target accessdone   
3.7.2.6undefined operatorsdone   
3.7.2.7null pointer comparison operatorsdone   
3.7.2.8specialized algorithmsdone   
4Metaprogramming and type traits
4.1Requirementsdone   
4.2Header <type_traits> synopsisdone   
4.3Helper classesdone   
4.4General Requirementsdone   
4.5Unary Type Traitsdone   
4.5.1Primary Type Categoriesdone   
4.5.2Composite type traitsdone   
4.5.3Type propertiesdone   
4.6Relationships between typesdone   
4.7Transformations between typesdone   
4.7.1Const-volatile modificationsdone   
4.7.2Reference modificationsdone   
4.7.3Array modificationsdone   
4.7.4Pointer modificationsdone   
4.8Other transformationsdone   
4.9Implementation requirementsdone   
5Numerical Facilities
5.1Random number generationdone   
5.1.1Requirementsdone   
5.1.2Header <random> synopsisdone   
5.1.3Class template variate_generatordone   
5.1.4Random number engine class templatesdone   
5.1.4.1Class template linear_congruentialdone   
5.1.4.2Class template mersenne_twisterdone   
5.1.4.3Class template subtract_with_carrydone   
5.1.4.4Class template subtract_with_carry_01done   
5.1.4.5Class template discard_blockdone   
5.1.4.6Class template xor_combinedone  operator()() per N2079
5.1.5Engines with predefined parametersdone   
5.1.6Class random_devicedone   
5.1.7Random distribution class templatesdone   
5.1.7.1Class template uniform_intdone   
5.1.7.2Class bernoulli_distributiondone   
5.1.7.3Class template geometric_distributiondone   
5.1.7.4Class template poisson_distributiondone   
5.1.7.5Class template binomial_distributiondone   
5.1.7.6Class template uniform_realdone   
5.1.7.7Class template exponential_distributiondone   
5.1.7.8Class template normal_distributiondone   
5.1.7.9Class template gamma_distributiondone   
5.2Mathematical special functionsdone   
5.2.1Additions to header <cmath> synopsisdone   
5.2.1.1associated Laguerre polynomialsdone   
5.2.1.2associated Legendre functionsdone   
5.2.1.3beta functiondone   
5.2.1.4(complete) elliptic integral of the first kinddone   
5.2.1.5(complete) elliptic integral of the second kinddone   
5.2.1.6(complete) elliptic integral of the third kinddone   
5.2.1.7confluent hypergeometric functionsdone   
5.2.1.8regular modified cylindrical Bessel functionsdone   
5.2.1.9cylindrical Bessel functions (of the first kind)done   
5.2.1.10irregular modified cylindrical Bessel functionsdone   
5.2.1.11cylindrical Neumann functionsdone   
5.2.1.12(incomplete) elliptic integral of the first kinddone   
5.2.1.13(incomplete) elliptic integral of the second kinddone   
5.2.1.14(incomplete) elliptic integral of the third kinddone   
5.2.1.15exponential integraldone   
5.2.1.16Hermite polynomialsdone   
5.2.1.17hypergeometric functionsdone   
5.2.1.18Laguerre polynomialsdone   
5.2.1.19Legendre polynomialsdone   
5.2.1.20Riemann zeta functiondone   
5.2.1.21spherical Bessel functions (of the first kind)done   
5.2.1.22spherical associated Legendre functionsdone   
5.2.1.23spherical Neumann functionsdone   
5.2.2Additions to header <math.h> synopsisdone   
6Containers
6.1Tuple typesdone   
6.1.1Header <tuple> synopsisdone   
6.1.2Additions to header <utility> synopsisdone   
6.1.3Class template tupledone   
6.1.3.1Constructiondone   
6.1.3.2Tuple creation functionsdone   
6.1.3.3Tuple helper classesdone   
6.1.3.4Element accessdone   
6.1.3.5Relational operatorsdone   
6.1.4Pairsdone   
6.2Fixed size arraydone   
6.2.1Header <array> synopsisdone   
6.2.2Class template arraydone   
6.2.2.1array constructors, copy, and assignmentdone   
6.2.2.2array specialized algorithmsdone   
6.2.2.3array sizedone   
6.2.2.4Zero sized arraysdone   
6.2.2.5Tuple interface to class template arraydone   
6.3Unordered associative containersdone   
6.3.1Unordered associative container requirementsdone   
6.3.1.1Exception safety guaranteesdone   
6.3.2Additions to header <functional> synopsisdone   
6.3.3Class template hashdone   
6.3.4Unordered associative container classesdone   
6.3.4.1Header <unordered_set> synopsisdone   
6.3.4.2Header <unordered_map> synopsisdone   
6.3.4.3Class template unordered_setdone   
6.3.4.3.1unordered_set constructorsdone   
6.3.4.3.2unordered_set swapdone   
6.3.4.4Class template unordered_mapdone   
6.3.4.4.1unordered_map constructorsdone   
6.3.4.4.2unordered_map element accessdone   
6.3.4.4.3unordered_map swapdone   
6.3.4.5Class template unordered_multisetdone   
6.3.4.5.1unordered_multiset constructorsdone   
6.3.4.5.2unordered_multiset swapdone   
6.3.4.6Class template unordered_multimapdone   
6.3.4.6.1unordered_multimap constructorsdone   
6.3.4.6.2unordered_multimap swapdone   
7Regular Expressions
7.1Definitions  missing 
7.2Requirements  missing 
7.3Regular expressions summary  missing 
7.4Header <regex> synopsis  missing 
7.5Namespace tr1::regex_constants  missing 
7.5.1Bitmask Type syntax_option_type  missing 
7.5.2Bitmask Type regex_constants::match_flag_type  missing 
7.5.3Implementation defined error_type  missing 
7.6Class regex_error  missing 
7.7Class template regex_traits  missing 
7.8Class template basic_regex  missing 
7.8.1basic_regex constants  missing 
7.8.2basic_regex constructors  missing 
7.8.3basic_regex assign  missing 
7.8.4basic_regex constant operations  missing 
7.8.5basic_regex locale  missing 
7.8.6basic_regex swap  missing 
7.8.7basic_regex non-member functions  missing 
7.8.7.1basic_regex non-member swap  missing 
7.9Class template sub_match  missing 
7.9.1sub_match members  missing 
7.9.2sub_match non-member operators  missing 
7.10Class template match_results  missing 
7.10.1match_results constructors  missing 
7.10.2match_results size  missing 
7.10.3match_results element access  missing 
7.10.4match_results formatting  missing 
7.10.5match_results allocator  missing 
7.10.6match_results swap  missing 
7.11Regular expression algorithms  missing 
7.11.1exceptions  missing 
7.11.2regex_match  missing 
7.11.3regex_search  missing 
7.11.4regex_replace  missing 
7.12Regular expression Iterators  missing 
7.12.1Class template regex_iterator  missing 
7.12.1.1regex_iterator constructors  missing 
7.12.1.2regex_iterator comparisons  missing 
7.12.1.3regex_iterator dereference  missing 
7.12.1.4regex_iterator increment  missing 
7.12.2Class template regex_token_iterator  missing 
7.12.2.1regex_token_iterator constructors  missing 
7.12.2.2regex_token_iterator comparisons  missing 
7.12.2.3regex_token_iterator dereference  missing 
7.12.2.4regex_token_iterator increment  missing 
7.13Modified ECMAScript regular expression grammar  missing 
8C Compatibility
8.1Additions to header <complex>done   
8.1.1Synopsisdone   
8.1.2Function acosdone   
8.1.3Function asindone   
8.1.4Function atandone   
8.1.5Function acoshdone   
8.1.6Function asinhdone   
8.1.7Function atanhdone   
8.1.8Function fabsdone   
8.1.9Additional Overloadsdone   
8.2Header <ccomplex>  missingDR 551
8.3Header <complex.h>  missingDR 551
8.4Additions to header <cctype>done   
8.4.1Synopsisdone   
8.4.2Function isblankdone   
8.5Additions to header <ctype.h>done   
8.6Header <cfenv>done   
8.6.1Synopsisdone   
8.6.2Definitionsdone   
8.7Header <fenv.h>done   
8.8Additions to header <cfloat>done   
8.9Additions to header <float.h>done   
8.10Additions to header <ios>  missing 
8.10.1Synopsis  missing 
8.10.2Function hexfloat  missing 
8.11Header <cinttypes>done   
8.11.1Synopsisdone  DR 557
8.11.2Definitionsdone   
8.12Header <inttypes.h>done   
8.13Additions to header <climits>done   
8.14Additions to header <limits.h>done   
8.15Additions to header <locale>  missing 
8.16Additions to header <cmath>done   
8.16.1Synopsisdone   
8.16.2Definitionsdone   
8.16.3Function template definitionsdone   
8.16.4Additional overloadsdone  DR 568; DR 550
8.17Additions to header <math.h>done   
8.18Additions to header <cstdarg>done   
8.19Additions to header <stdarg.h>done   
8.20The header <cstdbool>done   
8.21The header <stdbool.h>done   
8.22The header <cstdint>done   
8.22.1Synopsisdone   
8.22.2Definitionsdone   
8.23The header <stdint.h>done   
8.24Additions to header <cstdio>done   
8.24.1Synopsisdone   
8.24.2Definitionsdone   
8.24.3Additional format specifiersdone  C library responsibility
8.24.4Additions to header <stdio.h>done   
8.25Additions to header <cstdlib>done   
8.25.1Synopsisdone   
8.25.2Definitionsdone   
8.25.3Function absdone   
8.25.4Function divdone   
8.26Additions to header <stdlib.h>done   
8.27Header <ctgmath>done  DR 551
8.28Header <tgmath.h>done  DR 551
8.29Additions to header <ctime>done  C library responsibility
8.30Additions to header <cwchar>done   
8.30.1Synopsisdone   
8.30.2Definitionsdone   
8.30.3Additional wide format specifiersdone  C library responsibility
8.31Additions to header <wchar.h>done   
8.32Additions to header <cwctype>done   
8.32.1Synopsisdone   
8.32.2Function iswblankdone   
8.33Additions to header <wctype.h>done   

+

Table 1.1. C++ TR1 Implementation Status

SectionDescriptionDoneBrokenMissingComments
2General Utilities
2.1Reference wrappersdone   
2.1.1Additions to header <functional> synopsisdone   
2.1.2Class template reference_wrapperdone   
2.1.2.1reference_wrapper construct/copy/destroydone   
2.1.2.2reference_wrapper assignmentdone   
2.1.2.3reference_wrapper accessdone   
2.1.2.4reference_wrapper invocationdone   
2.1.2.5reference_wrapper helper functionsdone   
2.2Smart pointersdone   
2.2.1Additions to header <memory> synopsisdone   
2.2.2Class bad_weak_ptrdone   
2.2.3Class template shared_ptrdone  See Footnotes
2.2.3.1shared_ptr constructorsdone   
2.2.3.2shared_ptr destructordone   
2.2.3.3shared_ptr assignmentdone   
2.2.3.4shared_ptr modifiersdone   
2.2.3.5shared_ptr observersdone   
2.2.3.6shared_ptr comparisondone   
2.2.3.7shared_ptr I/Odone   
2.2.3.8shared_ptr specialized algorithmsdone   
2.2.3.9shared_ptr castsdone   
2.2.3.10get_deleterdone   
2.2.4Class template weak_ptrdone   
2.2.4.1weak_ptr constructorsdone   
2.2.4.2weak_ptr destructordone   
2.2.4.3weak_ptr assignmentdone   
2.2.4.4weak_ptr modifiersdone   
2.2.4.5weak_ptr observersdone   
2.2.4.6weak_ptr comparisondone   
2.2.4.7weak_ptr specialized algorithmsdone   
2.2.5Class template enable_shared_from_thisdone   
3Function Objects
3.1Definitionsdone   
3.2Additions to <functional> synopsisdone   
3.3Requirementsdone   
3.4Function return typesdone   
3.5Function template mem_fndone   
3.6Function object bindersdone   
3.6.1Class template is_bind_expressiondone   
3.6.2Class template is_placeholderdone   
3.6.3Function template binddone   
3.6.4Placeholdersdone   
3.7Polymorphic function wrappersdone   
3.7.1Class bad_function_calldone   
3.7.1.1bad_function_call constructordone   
3.7.2Class template functiondone   
3.7.2.1function construct/copy/destroydone   
3.7.2.2function modifiersdone   
3.7.2.3function capacitydone   
3.7.2.4function invocationdone   
3.7.2.5function target accessdone   
3.7.2.6undefined operatorsdone   
3.7.2.7null pointer comparison operatorsdone   
3.7.2.8specialized algorithmsdone   
4Metaprogramming and type traits
4.1Requirementsdone   
4.2Header <type_traits> synopsisdone   
4.3Helper classesdone   
4.4General Requirementsdone   
4.5Unary Type Traitsdone   
4.5.1Primary Type Categoriesdone   
4.5.2Composite type traitsdone   
4.5.3Type propertiesdone   
4.6Relationships between typesdone   
4.7Transformations between typesdone   
4.7.1Const-volatile modificationsdone   
4.7.2Reference modificationsdone   
4.7.3Array modificationsdone   
4.7.4Pointer modificationsdone   
4.8Other transformationsdone   
4.9Implementation requirementsdone   
5Numerical Facilities
5.1Random number generationdone   
5.1.1Requirementsdone   
5.1.2Header <random> synopsisdone   
5.1.3Class template variate_generatordone   
5.1.4Random number engine class templatesdone   
5.1.4.1Class template linear_congruentialdone   
5.1.4.2Class template mersenne_twisterdone   
5.1.4.3Class template subtract_with_carrydone   
5.1.4.4Class template subtract_with_carry_01done   
5.1.4.5Class template discard_blockdone   
5.1.4.6Class template xor_combinedone  operator()() per N2079
5.1.5Engines with predefined parametersdone   
5.1.6Class random_devicedone   
5.1.7Random distribution class templatesdone   
5.1.7.1Class template uniform_intdone   
5.1.7.2Class bernoulli_distributiondone   
5.1.7.3Class template geometric_distributiondone   
5.1.7.4Class template poisson_distributiondone   
5.1.7.5Class template binomial_distributiondone   
5.1.7.6Class template uniform_realdone   
5.1.7.7Class template exponential_distributiondone   
5.1.7.8Class template normal_distributiondone   
5.1.7.9Class template gamma_distributiondone   
5.2Mathematical special functionsdone   
5.2.1Additions to header <cmath> synopsisdone   
5.2.1.1associated Laguerre polynomialsdone   
5.2.1.2associated Legendre functionsdone   
5.2.1.3beta functiondone   
5.2.1.4(complete) elliptic integral of the first kinddone   
5.2.1.5(complete) elliptic integral of the second kinddone   
5.2.1.6(complete) elliptic integral of the third kinddone   
5.2.1.7confluent hypergeometric functionsdone   
5.2.1.8regular modified cylindrical Bessel functionsdone   
5.2.1.9cylindrical Bessel functions (of the first kind)done   
5.2.1.10irregular modified cylindrical Bessel functionsdone   
5.2.1.11cylindrical Neumann functionsdone   
5.2.1.12(incomplete) elliptic integral of the first kinddone   
5.2.1.13(incomplete) elliptic integral of the second kinddone   
5.2.1.14(incomplete) elliptic integral of the third kinddone   
5.2.1.15exponential integraldone   
5.2.1.16Hermite polynomialsdone   
5.2.1.17hypergeometric functionsdone   
5.2.1.18Laguerre polynomialsdone   
5.2.1.19Legendre polynomialsdone   
5.2.1.20Riemann zeta functiondone   
5.2.1.21spherical Bessel functions (of the first kind)done   
5.2.1.22spherical associated Legendre functionsdone   
5.2.1.23spherical Neumann functionsdone   
5.2.2Additions to header <math.h> synopsisdone   
6Containers
6.1Tuple typesdone   
6.1.1Header <tuple> synopsisdone   
6.1.2Additions to header <utility> synopsisdone   
6.1.3Class template tupledone   
6.1.3.1Constructiondone   
6.1.3.2Tuple creation functionsdone   
6.1.3.3Tuple helper classesdone   
6.1.3.4Element accessdone   
6.1.3.5Relational operatorsdone   
6.1.4Pairsdone   
6.2Fixed size arraydone   
6.2.1Header <array> synopsisdone   
6.2.2Class template arraydone   
6.2.2.1array constructors, copy, and assignmentdone   
6.2.2.2array specialized algorithmsdone   
6.2.2.3array sizedone   
6.2.2.4Zero sized arraysdone   
6.2.2.5Tuple interface to class template arraydone   
6.3Unordered associative containersdone   
6.3.1Unordered associative container requirementsdone   
6.3.1.1Exception safety guaranteesdone   
6.3.2Additions to header <functional> synopsisdone   
6.3.3Class template hashdone   
6.3.4Unordered associative container classesdone   
6.3.4.1Header <unordered_set> synopsisdone   
6.3.4.2Header <unordered_map> synopsisdone   
6.3.4.3Class template unordered_setdone   
6.3.4.3.1unordered_set constructorsdone   
6.3.4.3.2unordered_set swapdone   
6.3.4.4Class template unordered_mapdone   
6.3.4.4.1unordered_map constructorsdone   
6.3.4.4.2unordered_map element accessdone   
6.3.4.4.3unordered_map swapdone   
6.3.4.5Class template unordered_multisetdone   
6.3.4.5.1unordered_multiset constructorsdone   
6.3.4.5.2unordered_multiset swapdone   
6.3.4.6Class template unordered_multimapdone   
6.3.4.6.1unordered_multimap constructorsdone   
6.3.4.6.2unordered_multimap swapdone   
7Regular Expressions
7.1Definitions  missing 
7.2Requirements  missing 
7.3Regular expressions summary  missing 
7.4Header <regex> synopsis  missing 
7.5Namespace tr1::regex_constants  missing 
7.5.1Bitmask Type syntax_option_type  missing 
7.5.2Bitmask Type regex_constants::match_flag_type  missing 
7.5.3Implementation defined error_type  missing 
7.6Class regex_error  missing 
7.7Class template regex_traits  missing 
7.8Class template basic_regex  missing 
7.8.1basic_regex constants  missing 
7.8.2basic_regex constructors  missing 
7.8.3basic_regex assign  missing 
7.8.4basic_regex constant operations  missing 
7.8.5basic_regex locale  missing 
7.8.6basic_regex swap  missing 
7.8.7basic_regex non-member functions  missing 
7.8.7.1basic_regex non-member swap  missing 
7.9Class template sub_match  missing 
7.9.1sub_match members  missing 
7.9.2sub_match non-member operators  missing 
7.10Class template match_results  missing 
7.10.1match_results constructors  missing 
7.10.2match_results size  missing 
7.10.3match_results element access  missing 
7.10.4match_results formatting  missing 
7.10.5match_results allocator  missing 
7.10.6match_results swap  missing 
7.11Regular expression algorithms  missing 
7.11.1exceptions  missing 
7.11.2regex_match  missing 
7.11.3regex_search  missing 
7.11.4regex_replace  missing 
7.12Regular expression Iterators  missing 
7.12.1Class template regex_iterator  missing 
7.12.1.1regex_iterator constructors  missing 
7.12.1.2regex_iterator comparisons  missing 
7.12.1.3regex_iterator dereference  missing 
7.12.1.4regex_iterator increment  missing 
7.12.2Class template regex_token_iterator  missing 
7.12.2.1regex_token_iterator constructors  missing 
7.12.2.2regex_token_iterator comparisons  missing 
7.12.2.3regex_token_iterator dereference  missing 
7.12.2.4regex_token_iterator increment  missing 
7.13Modified ECMAScript regular expression grammar  missing 
8C Compatibility
8.1Additions to header <complex>done   
8.1.1Synopsisdone   
8.1.2Function acosdone   
8.1.3Function asindone   
8.1.4Function atandone   
8.1.5Function acoshdone   
8.1.6Function asinhdone   
8.1.7Function atanhdone   
8.1.8Function fabsdone   
8.1.9Additional Overloadsdone   
8.2Header <ccomplex>  missingDR 551
8.3Header <complex.h>  missingDR 551
8.4Additions to header <cctype>done   
8.4.1Synopsisdone   
8.4.2Function isblankdone   
8.5Additions to header <ctype.h>done   
8.6Header <cfenv>done   
8.6.1Synopsisdone   
8.6.2Definitionsdone   
8.7Header <fenv.h>done   
8.8Additions to header <cfloat>done   
8.9Additions to header <float.h>done   
8.10Additions to header <ios>  missing 
8.10.1Synopsis  missing 
8.10.2Function hexfloat  missing 
8.11Header <cinttypes>done   
8.11.1Synopsisdone  DR 557
8.11.2Definitionsdone   
8.12Header <inttypes.h>done   
8.13Additions to header <climits>done   
8.14Additions to header <limits.h>done   
8.15Additions to header <locale>  missing 
8.16Additions to header <cmath>done   
8.16.1Synopsisdone   
8.16.2Definitionsdone   
8.16.3Function template definitionsdone   
8.16.4Additional overloadsdone  DR 568; DR 550
8.17Additions to header <math.h>done   
8.18Additions to header <cstdarg>done   
8.19Additions to header <stdarg.h>done   
8.20The header <cstdbool>done   
8.21The header <stdbool.h>done   
8.22The header <cstdint>done   
8.22.1Synopsisdone   
8.22.2Definitionsdone   
8.23The header <stdint.h>done   
8.24Additions to header <cstdio>done   
8.24.1Synopsisdone   
8.24.2Definitionsdone   
8.24.3Additional format specifiersdone  C library responsibility
8.24.4Additions to header <stdio.h>done   
8.25Additions to header <cstdlib>done   
8.25.1Synopsisdone   
8.25.2Definitionsdone   
8.25.3Function absdone   
8.25.4Function divdone   
8.26Additions to header <stdlib.h>done   
8.27Header <ctgmath>done  DR 551
8.28Header <tgmath.h>done  DR 551
8.29Additions to header <ctime>done  C library responsibility
8.30Additions to header <cwchar>done   
8.30.1Synopsisdone   
8.30.2Definitionsdone   
8.30.3Additional wide format specifiersdone  C library responsibility
8.31Additions to header <wchar.h>done   
8.32Additions to header <cwctype>done   
8.32.1Synopsisdone   
8.32.2Function iswblankdone   
8.33Additions to header <wctype.h>done   

Footnotes

The shared_ptr implementation uses some code from the @@ -6120,7 +6120,7 @@ presence of the required flag.

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

Table 1.2. C++ 200x Implementation Status

SectionDescriptionDoneBrokenMissingComments
20General Utilities
20.2Utility Components  incomplete 
20.2.1Operators  partial 
20.2.2forward/move helpers  partial 
20.2.3Pairsdone   
20.3Header <tuple> synopsisdone   
20.3.1Class template tupledone   
20.3.1.1Constructiondone   
20.3.1.2Tuple creation functionsdone   
20.3.1.3Tuple helper classesdone   
20.3.1.4Element accessdone   
20.3.1.5Relational operatorsdone   
20.4Metaprogramming and type traits
20.4.1Requirementsdone   
20.4.2Header <type_traits> synopsisdone   
20.4.3Helper classesdone   
20.4.4General Requirementsdone   
20.4.5Unary Type Traitsdone   
20.4.5.1Primary Type Categoriesdone   
20.4.5.2Composite type traitsdone   
20.4.5.3Type propertiesdone   
20.4.6Relationships between typesdone   
20.4.7Transformations between typesdone   
20.4.7.1Const-volatile modificationsdone   
20.4.7.2Reference modificationsdone   
20.4.7.3Array modificationsdone   
20.4.7.4Pointer modificationsdone   
20.4.8Other transformationsdone   
20.4.9Implementation requirementsdone   
20.5 Function Objectsdone   
20.5Additions to header <functional> synopsisdone   
20.5.1Definitionsdone   
20.5.2Requirementsdone   
20.5.3Basedone   
20.5.4Function return typesdone   
20.5.5Class template reference_wrapperdone   
20.5.5.1reference_wrapper construct/copy/destroydone   
20.5.5.2reference_wrapper assignmentdone   
20.5.5.3reference_wrapper accessdone   
20.5.5.4reference_wrapper invocationdone   
20.5.5.5reference_wrapper helper functionsdone   
20.5.14Function template mem_fndone   
20.5.11Template function binddone   
20.5.11.1Function object bindersdone   
20.5.11.1.1Class template is_bind_expressiondone   
20.5.11.1.2Class template is_placeholderdone   
20.5.11.1.3Function template binddone   
20.5.11.1.4Placeholdersdone   
20.5.15Polymorphic function wrappersdone   
20.5.15.1Class bad_function_calldone   
20.5.15.1.1bad_function_call constructordone   
20.5.15.2Class template functiondone   
20.5.15.2.1function construct/copy/destroydone   
20.5.15.2.2function modifiersdone   
20.5.15.2.3function capacitydone   
20.5.15.2.4function invocationdone   
20.5.15.2.5function target accessdone   
20.5.15.2.7null pointer comparison operatorsdone   
20.5.15.2.8specialized algorithmsdone   
20.5.16Class template hashdone   
20.6Additions to header <memory> synopsis  partialmissing unique_ptr
20.6.5Class template unique_ptr  missing 
20.6.6Smart pointersdone   
20.6.6.1Class bad_weak_ptrdone   
20.6.6.2Class template shared_ptrdone  See Footnotes.
20.6.6.2.1shared_ptr constructorsdone   
20.6.6.2.2shared_ptr destructordone   
20.6.6.2.3shared_ptr assignmentdone   
20.6.6.2.4shared_ptr modifiersdone   
20.6.6.2.5shared_ptr observersdone   
20.6.6.2.6shared_ptr creationdone   +

Table 1.2. C++ 200x Implementation Status

SectionDescriptionDoneBrokenMissingComments
20General Utilities
20.2Utility Components  incomplete 
20.2.1Operators  partial 
20.2.2forward/move helpers  partial 
20.2.3Pairsdone   
20.3Header <tuple> synopsisdone   
20.3.1Class template tupledone   
20.3.1.1Constructiondone   
20.3.1.2Tuple creation functionsdone   
20.3.1.3Tuple helper classesdone   
20.3.1.4Element accessdone   
20.3.1.5Relational operatorsdone   
20.4Metaprogramming and type traits
20.4.1Requirementsdone   
20.4.2Header <type_traits> synopsisdone   
20.4.3Helper classesdone   
20.4.4General Requirementsdone   
20.4.5Unary Type Traitsdone   
20.4.5.1Primary Type Categoriesdone   
20.4.5.2Composite type traitsdone   
20.4.5.3Type propertiesdone   
20.4.6Relationships between typesdone   
20.4.7Transformations between typesdone   
20.4.7.1Const-volatile modificationsdone   
20.4.7.2Reference modificationsdone   
20.4.7.3Array modificationsdone   
20.4.7.4Pointer modificationsdone   
20.4.8Other transformationsdone   
20.4.9Implementation requirementsdone   
20.5 Function Objectsdone   
20.5Additions to header <functional> synopsisdone   
20.5.1Definitionsdone   
20.5.2Requirementsdone   
20.5.3Basedone   
20.5.4Function return typesdone   
20.5.5Class template reference_wrapperdone   
20.5.5.1reference_wrapper construct/copy/destroydone   
20.5.5.2reference_wrapper assignmentdone   
20.5.5.3reference_wrapper accessdone   
20.5.5.4reference_wrapper invocationdone   
20.5.5.5reference_wrapper helper functionsdone   
20.5.14Function template mem_fndone   
20.5.11Template function binddone   
20.5.11.1Function object bindersdone   
20.5.11.1.1Class template is_bind_expressiondone   
20.5.11.1.2Class template is_placeholderdone   
20.5.11.1.3Function template binddone   
20.5.11.1.4Placeholdersdone   
20.5.15Polymorphic function wrappersdone   
20.5.15.1Class bad_function_calldone   
20.5.15.1.1bad_function_call constructordone   
20.5.15.2Class template functiondone   
20.5.15.2.1function construct/copy/destroydone   
20.5.15.2.2function modifiersdone   
20.5.15.2.3function capacitydone   
20.5.15.2.4function invocationdone   
20.5.15.2.5function target accessdone   
20.5.15.2.7null pointer comparison operatorsdone   
20.5.15.2.8specialized algorithmsdone   
20.5.16Class template hashdone   
20.6Additions to header <memory> synopsis  partialmissing unique_ptr
20.6.5Class template unique_ptr  missing 
20.6.6Smart pointersdone   
20.6.6.1Class bad_weak_ptrdone   
20.6.6.2Class template shared_ptrdone  See Footnotes.
20.6.6.2.1shared_ptr constructorsdone   
20.6.6.2.2shared_ptr destructordone   
20.6.6.2.3shared_ptr assignmentdone   
20.6.6.2.4shared_ptr modifiersdone   
20.6.6.2.5shared_ptr observersdone   
20.6.6.2.6shared_ptr creationdone   N2351
20.6.6.2.7shared_ptr comparisondone   
20.6.6.2.8shared_ptr I/Odone   
20.6.6.2.9shared_ptr specialized algorithmsdone   
20.6.6.2.10shared_ptr castsdone   
20.6.6.2.11get_deleterdone   
20.6.6.3Class template weak_ptrdone   
20.6.6.3.1weak_ptr constructorsdone   
20.6.6.3.2weak_ptr destructordone   
20.6.6.3.3weak_ptr assignmentdone   
20.6.6.3.4weak_ptr modifiersdone   
20.6.6.3.5weak_ptr observersdone   
20.6.6.3.6weak_ptr comparisondone   
20.6.6.3.7weak_ptr specialized algorithmsdone   
20.6.6.4Class template enable_shared_from_thisdone   
23Containers
23.2.1Header <array> synopsisdone   
23.2.1Class template arraydone   
23.2.1.1array constructors, copy, and assignmentdone   
23.2.1.2array specialized algorithmsdone   
23.2.1.3array sizedone   
23.2.1.4array datadone   
23.2.1.5Zero sized arraysdone   
23.2.1.6Tuple interface to class template arraydone   
23.4Unordered associative containersdone   
23.4.1Class template unordered_mapdone   
23.4.1.1unordered_map constructorsdone   
23.4.1.2unordered_map element accessdone   
23.4.1.3unordered_map swapdone   
23.4.2Class template unordered_multimapdone   
23.4.2.1unordered_multimap constructorsdone   
23.4.2.2unordered_multimap swapdone   
23.4.3Class template unordered_setdone   
23.4.3.1unordered_set constructorsdone   
23.4.3.2unordered_set swapdone   
23.4.4Class template unordered_multisetdone   
23.4.4.1unordered_multiset constructorsdone   
23.4.4.2unordered_multiset swapdone   
26Numerics
26.4Random number generationdone   
26.4.1Requirementsdone   
26.4.2Header <random> synopsis  partial 
26.4.3Random number engine class templatesdone   
26.4.3.1Class template linear_congruential_enginedone   
26.4.3.2Class template mersenne_twister_enginedone   
26.4.3.3Class template subtract_with_carry_enginedone   
26.4.4Random number engine adaptor class templatesdone   
26.4.4.1Class template discard_block_enginedone   
26.4.4.2Class template independent_bits_enginedone   
26.4.4.3Class template shuffle_order_enginedone   
26.4.4.4Class template xor_combine_enginedone  operator()() per N2079
26.4.5Engines and engine adaptors with predefined parametersdone   
26.4.6Class random_devicedone   
26.4.7Utilitiesdone   
26.4.7.1Class seed_seq  missing 
26.4.7.2Function template generate_canonical  missing 
26.4.8Random number generation class templatesdone   
26.4.8.1Uniform distributions  partial 
26.4.8.1Class template uniform_int_distribution  missing 
26.4.8.1Class template uniform_real_distribution  missing 
26.4.8.2Bernoulli distributions  partial 
26.4.8.2.1Class bernoulli_distributiondone   
26.4.8.2.2Class template binomial_distributiondone   
26.4.8.2.3Class template geometric_distributiondone   
26.4.8.2.4Class template negative_binomial_distribution  missing 
26.4.8.3Poisson distributions  partial 
26.4.8.3.1Class template poisson_distributiondone   
26.4.8.3.2Class template exponential_distributiondone   
26.4.8.3.3Class template gamma_distributiondone   
26.4.8.3.4Class template weibull_distribution  missing 
26.4.8.3.5Class template extreme_value_distribution  missing 
26.4.8.4Normal distributions  partial 
26.4.8.4.1Class template normal_distributiondone   
26.4.8.4.2Class template lognormal_distribution  missing 
26.4.8.4.3Class template chi_squared_distribution  missing 
26.4.8.4.4Class template cauchy_distribution  missing 
26.4.8.4.5Class template fisher_f_distribution  missing 
26.4.8.4.6Class template student_t_distribution  missing 
26.4.8.5Sampling distributions  missing 
26.4.8.5.1Class template discrete_distribution  missing 
26.4.8.5.1Class template piecewise_constant_distribution  missing 
26.4.8.5.1Class template general_pdf_distribution  missing 
28Regular Expressions
28.1Definitions  missing 
28.2Requirements  missing 
28.3Regular expressions summary  missing 
28.4Header <regex> synopsis  missing 
28.5Namespace tr1::regex_constants  missing 
28.5.1Bitmask Type syntax_option_type  missing 
28.5.2Bitmask Type regex_constants::match_flag_type  missing 
28.5.3Implementation defined error_type  missing 
28.6Class regex_error  missing 
28.7Class template regex_traits  missing 
28.8Class template basic_regex  missing 
28.8.1basic_regex constants  missing 
28.8.2basic_regex constructors  missing 
28.8.3basic_regex assign  missing 
28.8.4basic_regex constant operations  missing 
28.8.5basic_regex locale  missing 
28.8.6basic_regex swap  missing 
28.8.7basic_regex non-member functions  missing 
28.8.7.1basic_regex non-member swap  missing 
28.9Class template sub_match  missing 
28.9.1sub_match members  missing 
28.9.2sub_match non-member operators  missing 
28.10Class template match_results  missing 
28.10.1match_results constructors  missing 
28.10.2match_results size  missing 
28.10.3match_results element access  missing 
28.10.4match_results formatting  missing 
28.10.5match_results allocator  missing 
28.10.6match_results swap  missing 
28.11Regular expression algorithms  missing 
28.11.1exceptions  missing 
28.11.2regex_match  missing 
28.11.3regex_search  missing 
28.11.4regex_replace  missing 
28.12Regular expression Iterators  missing 
28.12.1Class template regex_iterator  missing 
28.12.1.1regex_iterator constructors  missing 
28.12.1.2regex_iterator comparisons  missing 
28.12.1.3regex_iterator dereference  missing 
28.12.1.4regex_iterator increment  missing 
28.12.2Class template regex_token_iterator  missing 
28.12.2.1regex_token_iterator constructors  missing 
28.12.2.2regex_token_iterator comparisons  missing 
28.12.2.3regex_token_iterator dereference  missing 
28.12.2.4regex_token_iterator increment  missing 
28.13Modified ECMAScript regular expression grammar  missing 
CC Compatibility
C2.1Additions to header <complex>done   
C2.1.1Synopsisdone   
C2.1.2Function acosdone   
C2.1.3Function asindone   
C2.1.4Function atandone   
C2.1.5Function acoshdone   
C2.1.6Function asinhdone   
C2.1.7Function atanhdone   
C2.1.8Function fabsdone   
C2.1.9Additional Overloadsdone   
C2.2Header <ccomplex>  missingDR 551
C2.3Header <complex.h>  missingDR 551
C2.4Additions to header <cctype>done   
C2.4.1Synopsisdone   
C2.4.2Function isblankdone   
C2.5Additions to header <ctype.h>done   
C2.6Header <cfenv>done   
C2.6.1Synopsisdone   
C2.6.2Definitionsdone   
C2.7Header <fenv.h>done   
C2.8Additions to header <cfloat>done   
C2.9Additions to header <float.h>done   
C2.10Additions to header <ios>  missing 
C2.10.1Synopsis  missing 
C2.10.2Function hexfloat  missing 
C2.11Header <cinttypes>done   
C2.11.1Synopsisdone  DR 557
C2.11.2Definitionsdone   
C2.12Header <inttypes.h>done   
C2.13Additions to header <climits>done   
C2.14Additions to header <limits.h>done   
C2.15Additions to header <locale>  missing 
C2.16Additions to header <cmath>done   
C2.16.1Synopsisdone   
C2.16.2Definitionsdone   
C2.16.3Function template definitionsdone   
C2.16.4Additional overloadsdone  DR 568; DR 550
C2.17Additions to header <math.h>done   
C2.18Additions to header <cstdarg>done   
C2.19Additions to header <stdarg.h>done   
C2.20The header <cstdbool>done   
C2.21The header <stdbool.h>done   
C2.22The header <cstdint>done   
C2.22.1Synopsisdone   
C2.22.2Definitionsdone   
C2.23The header <stdint.h>done   
C2.24Additions to header <cstdio>done   
C2.24.1Synopsisdone   
C2.24.2Definitionsdone   
C2.24.3Additional format specifiersdone  C library responsibility
C2.24.4Additions to header <stdio.h>done   
C2.25Additions to header <cstdlib>done   
C2.25.1Synopsisdone   
C2.25.2Definitionsdone   
C2.25.3Function absdone   
C2.25.4Function divdone   
C2.26Additions to header <stdlib.h>done   
C2.27Header <ctgmath>done  DR 551
C2.28Header <tgmath.h>done  DR 551
C2.29Additions to header <ctime>done  C library responsibility
C2.30Additions to header <cwchar>done   
C2.30.1Synopsisdone   
C2.30.2Definitionsdone   
C2.30.3Additional wide format specifiersdone  C library responsibility
C2.31Additions to header <wchar.h>done   
C2.32Additions to header <cwctype>done   
C2.32.1Synopsisdone   
C2.32.2Function iswblankdone   
C2.33Additions to header <wctype.h>done   
DCompatibility Features
D.6Old iostream membersdone   
D.8Bindersdone  33911
D.9Class template auto_ptrdone  33911

Footnotes diff --git a/libstdc++-v3/doc/html/manual/bk01pt01ch02.html b/libstdc++-v3/doc/html/manual/bk01pt01ch02.html index 7ddc9cabeb4..90687415529 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt01ch02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt01ch02.html @@ -1,181 +1,98 @@ -Chapter 2. Setup

Chapter 2. Setup

Configure

- Here are some of the non-obvious options to libstdc++'s configure. - Keep in mind that - - they - all have opposite forms as well - (enable/disable and with/without). The defaults are for current - development sources, which may be different than those for - released versions. -

The canonical way to find out the configure options that are - available for a given set of libstdc++ sources is to go to the - source directory and then type: ./configure --help -

--enable-multilib[default]

This is part of the generic multilib support for building cross - compilers. As such, targets like "powerpc-elf" will have - libstdc++ built many different ways: "-msoft-float" - and not, etc. A different libstdc++ will be built for each of - the different multilib versions. This option is on by default. -

--enable-sjlj-exceptions

Forces old, set-jump/long-jump exception handling model. If - at all possible, the new, frame unwinding exception handling routines - should be used instead, as they significantly reduce both - runtime memory usage and executable size. This option can - change the library ABI. -

--enable-version-specific-runtime-libs

Specify that run-time libraries should be installed in the - compiler-specific subdirectory (i.e., - ${libdir}/gcc-lib/${target_alias}/${gcc_version}) - instead of ${libdir}. This option is useful if you - intend to use several versions of gcc in parallel. In addition, - libstdc++'s include files will be installed in - ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++, - unless you also specify - --with-gxx-include-dir=dirname during configuration. -

--with-gxx-include-dir=<include-files dir>

Adds support for named libstdc++ include directory. For instance, - the following puts all the libstdc++ headers into a directory - called "2.97-20001008" instead of the usual - "c++/(version)". -

-   --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
--enable-cstdio

This is an abbreviated form of '--enable-cstdio=stdio' - (described next). This option can change the library ABI. -

--enable-cstdio=OPTION

Select a target-specific I/O package. At the moment, the only - choice is to use 'stdio', a generic "C" abstraction. - The default is 'stdio'. -

--enable-clocale

This is an abbreviated form of '--enable-clocale=generic' - (described next). This option can change the library ABI. -

--enable-clocale=OPTION

Select a target-specific underlying locale package. The - choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix - (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets, - 'gnu' to specify a model based on functionality from the GNU C - library (langinfo/iconv/gettext) (from glibc, the GNU C - library), or 'generic' to use a generic "C" - abstraction which consists of "C" locale info. -

As part of the configuration process, the "C" library is - probed both for sufficient vintage, and installed locale - data. If either of these elements are not present, the C++ - locale model default to 'generic.' On glibc-based systems of - version 2.2.5 and above with installed locale files, 'gnu' is - automatically selected. -

--enable-libstdcxx-allocator

This is an abbreviated form of - '--enable-libstdcxx-allocator=auto' (described - next). This option can change the library ABI. -

--enable-libstdcxx-allocator=OPTION

Select a target-specific underlying std::allocator. The - choices are 'new' to specify a wrapper for new, 'malloc' to - specify a wrapper for malloc, 'mt' for a fixed power of two allocator - (documented under extensions), - 'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator. - This option can change the library ABI. -

--enable-cheaders=OPTION

This allows the user to define the approach taken for C header - compatibility with C++. Options are c, c_std, and c_global. - These correspond to the source directory's include/c, - include/c_std, and include/c_global, and may also include - include/c_compatibility. The default is c_global. -

--enable-threads

This is an abbreviated form of '--enable-threads=yes' - (described next). This option can change the library ABI. -

--enable-threads=OPTION

Select a threading library. A full description is given in the - general compiler - configuration instructions. -

--enable-libstdcxx-debug

Build separate debug libraries in addition to what is normally built. - By default, the debug libraries are compiled with - CXXFLAGS='-g3 -O0' - , are installed in ${libdir}/debug, and have the - same names and versioning information as the non-debug - libraries. This option is off by default. -

Note this make command, executed in - the build directory, will do much the same thing, without the - configuration difference and without building everything twice: - make CXXFLAGS='-g3 -O0' all -

--enable-libstdcxx-debug-flags=FLAGS

This option is only valid when --enable-debug - is also specified, and applies to the debug builds only. With - this option, you can pass a specific string of flags to the - compiler to use when building the debug versions of libstdc++. - FLAGS is a quoted string of options, like -

-  --enable-libstdcxx-debug-flags='-g3 -O1 -gdwarf-2'
--enable-cxx-flags=FLAGS

With this option, you can pass a string of -f (functionality) - flags to the compiler to use when building libstdc++. This - option can change the library ABI. FLAGS is a quoted string of - options, like -

-  --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'

- Note that the flags don't necessarily have to all be -f flags, - as shown, but usually those are the ones that will make sense - for experimentation and configure-time overriding. -

The advantage of --enable-cxx-flags over setting CXXFLAGS in - the 'make' environment is that, if files are automatically - rebuilt, the same flags will be used when compiling those files - as well, so that everything matches. -

Fun flags to try might include combinations of -

-  -fstrict-aliasing
-  -fno-exceptions
-  -ffunction-sections
-  -fvtable-gc

and opposite forms (-fno-) of the same. Tell us (the libstdc++ - mailing list) if you discover more! -

--enable-c99

The "long long" type was introduced in C99, along - with many other functions for wide characters, and math - classification macros, etc. If enabled, all C99 functions not - specified by the C++ standard will be put into namespace - __gnu_cxx, and then all these names will - be injected into namespace std, so that C99 functions can be - used "as if" they were in the C++ standard (as they - will eventually be in some future revision of the standard, - without a doubt). By default, C99 support is on, assuming the - configure probes find all the necessary functions and bits - necessary. This option can change the library ABI. -

--enable-wchar_t[default]

Template specializations for the "wchar_t" type are - required for wide character conversion support. Disabling - wide character specializations may be expedient for initial - porting efforts, but builds only a subset of what is required by - ISO, and is not recommended. By default, this option is on. - This option can change the library ABI. -

--enable-long-long

The "long long" type was introduced in C99. It is - provided as a GNU extension to C++98 in g++. This flag builds - support for "long long" into the library (specialized - templates and the like for iostreams). This option is on by default: - if enabled, users will have to either use the new-style "C" - headers by default (i.e., <cmath> not <math.h>) - or add appropriate compile-time flags to all compile lines to - allow "C" visibility of this feature (on GNU/Linux, - the flag is -D_ISOC99_SOURCE, which is added automatically via - CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE). - This option can change the library ABI. -

--enable-fully-dynamic-string

This option enables a special version of basic_string avoiding - the optimization that allocates empty objects in static memory. - Mostly useful together with shared memory allocators, see PR - libstdc++/16612 for details. -

--enable-concept-checks

This turns on additional compile-time checks for instantiated - library templates, in the form of specialized templates, - described here. They - can help users discover when they break the rules of the STL, before - their programs run. -

--enable-symvers[=style]

In 3.1 and later, tries to turn on symbol versioning in the - shared library (if a shared library has been - requested). Values for 'style' that are currently supported - are 'gnu', 'gnu-versioned-namespace', 'darwin', and - 'darwin-export'. Both gnu- options require that a recent - version of the GNU linker be in use. Both darwin options are - equivalent. With no style given, the configure script will try - to guess correct defaults for the host system, probe to see if - additional requirements are necessary and present for - activation, and if so, will turn symbol versioning on. This - option can change the library ABI. -

--enable-visibility

In 4.2 and later, enables or disables visibility attributes. - If enabled (as by default), and the compiler seems capable of - passing the simple sanity checks thrown at it, adjusts items - in namespace std, namespace std::tr1, and namespace __gnu_cxx - so that -fvisibility options work. -

--enable-libstdcxx-pch

In 3.4 and later, tries to turn on the generation of - stdc++.h.gch, a pre-compiled file including all the standard - C++ includes. If enabled (as by default), and the compiler - seems capable of passing the simple sanity checks thrown at - it, try to build stdc++.h.gch as part of the make process. - In addition, this generated file is used later on (by appending - --include bits/stdc++.h to CXXFLAGS) when running the - testsuite. -

--disable-hosted-libstdcxx

- By default, a complete hosted C++ library is - built. The C++ Standard also describes a - freestanding environment, in which only a - minimal set of headers are provided. This option builds such an - environment. -

+Chapter 2. Setup

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. +

The general outline of commands is something like: +

+   get gcc sources
+   extract into gccsrcdir
+   mkdir gccbuilddir
+   cd gccbuilddir
+   gccsrcdir/configure --prefix=destdir --other-opts...
+   make
+   make check
+   make install
+   

+ Each step is described in more detail in the following sections. +

Prerequisites

+ Because libstdc++ is part of GCC, the primary source for + installation instructions is + the GCC install page. + In particular, list of prerequisite software needed to build the library + + starts with those requirements. The same pages also list + the tools you will need if you wish to modify the source. +

+ Additional data is given here only where it applies to libstdc++. +

As of GCC 4.0.1 the minimum version of binutils required to build + libstdc++ is 2.15.90.0.1.1. You can get snapshots + (as well as releases) of binutils from + + ftp://sources.redhat.com/pub/binutils. + Older releases of libstdc++ do not require such a recent version, + but to take full advantage of useful space-saving features and + bug-fixes you should use a recent binutils whenever possible. + The configure process will automatically detect and use these + features if the underlying support is present. +

+ Finally, a few system-specific requirements: +

linux

+ If gcc 3.1.0 or later on is being used on linux, an attempt + will be made to use "C" library functionality necessary for + C++ named locale support. For gcc 3.2.1 and later, this + means that glibc 2.2.5 or later is required and the "C" + library de_DE locale information must be installed. +

+ Note however that the sanity checks involving the de_DE + locale are skipped when an explicit --enable-clocale=gnu + configure option is used: only the basic checks are carried + out, defending against misconfigurations. +

+ If the 'gnu' locale model is being used, the following + locales are used and tested in the libstdc++ testsuites. + The first column is the name of the locale, the second is + the character set it is expected to use. +

+de_DE               ISO-8859-1
+de_DE@euro          ISO-8859-15
+en_HK               ISO-8859-1
+en_PH               ISO-8859-1
+en_US               ISO-8859-1
+en_US.ISO-8859-1    ISO-8859-1
+en_US.ISO-8859-15   ISO-8859-15
+en_US.UTF-8         UTF-8
+es_ES               ISO-8859-1
+es_MX               ISO-8859-1
+fr_FR               ISO-8859-1
+fr_FR@euro          ISO-8859-15
+is_IS               UTF-8
+it_IT               ISO-8859-1
+ja_JP.eucjp         EUC-JP
+se_NO.UTF-8         UTF-8
+ta_IN               UTF-8
+zh_TW               BIG5
+

Failure to have the underlying "C" library locale + information installed will mean that C++ named locales for the + above regions will not work: because of this, the libstdc++ + testsuite will skip the named locale tests. If this isn't an + issue, don't worry about it. If named locales are needed, the + underlying locale information must be installed. Note that + rebuilding libstdc++ after the "C" locales are installed is not + necessary. +

+ To install support for locales, do only one of the following: +

  • install all locales

    • with RedHat Linux: +

      export LC_ALL=C +

      rpm -e glibc-common --nodeps +

      + rpm -i --define "_install_langs all" + glibc-common-2.2.5-34.i386.rpm + +

    • + Instructions for other operating systems solicited. +

  • install just the necessary locales

    • with Debian Linux:

      Add the above list, as shown, to the file + /etc/locale.gen

      run /usr/sbin/locale-gen

    • on most Unix-like operating systems:

      localedef -i de_DE -f ISO-8859-1 de_DE

      (repeat for each entry in the above list)

    • + Instructions for other operating systems solicited. +

diff --git a/libstdc++-v3/doc/html/manual/bk01pt01ch02s03.html b/libstdc++-v3/doc/html/manual/bk01pt01ch02s03.html new file mode 100644 index 00000000000..8d8e1df527c --- /dev/null +++ b/libstdc++-v3/doc/html/manual/bk01pt01ch02s03.html @@ -0,0 +1,9 @@ + + +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/bk01pt01ch03s02.html b/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html index ba8763dec0e..d3dd827cf7d 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt01ch03s02.html @@ -20,14 +20,14 @@ 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

algorithmiomaniplistostreamstreambuf
bitsetioslocalequeuestring
complexiosfwdmapsettypeinfo
dequeiostreammemorysstreamutility
exceptionistreamnewstackvalarray
fstreamiteratornumericstdexceptvector
functionallimits   

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

cassertciso646csetjmpcstdioctime
cctypeclimitscsignalcstdlibcwchar
cerrnoclocalecstdargcstringcwctype
cfloatcmathcstddef  

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

algorithmiomaniplocaleregextuple
arrayiosmapsettypeinfo
bitsetiosfwdmemorysstreamtype_traits
complexiostreamnewstackunordered_map
dequeistreamnumericstdexceptunordered_set
exceptioniteratorostreamstreambufutility
fstreamlimitsqueuestringvalarray
functionallistrandomsystem_errorvector
condition_variablemutexthread  

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

cassertcfloatcmathcstddefctgmath
ccomplexcinttypescsetjmpcstdintctime
cctypeciso646csignalcstdiocuchar
cerrnoclimitscstdargcstdlibcwchar
cfenvclocalecstdboolcstringcwctype
cstdatomic    

+

Table 3.1. C++ 1998 Library Headers

algorithmiomaniplistostreamstreambuf
bitsetioslocalequeuestring
complexiosfwdmapsettypeinfo
dequeiostreammemorysstreamutility
exceptionistreamnewstackvalarray
fstreamiteratornumericstdexceptvector
functionallimits   

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

cassertciso646csetjmpcstdioctime
cctypeclimitscsignalcstdlibcwchar
cerrnoclocalecstdargcstringcwctype
cfloatcmathcstddef  

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

algorithmiomaniplocaleregextuple
arrayiosmapsettypeinfo
bitsetiosfwdmemorysstreamtype_traits
complexiostreamnewstackunordered_map
dequeistreamnumericstdexceptunordered_set
exceptioniteratorostreamstreambufutility
fstreamlimitsqueuestringvalarray
functionallistrandomsystem_errorvector
condition_variablemutexthread  

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

cassertcfloatcmathcstddefctgmath
ccomplexcinttypescsetjmpcstdintctime
cctypeciso646csignalcstdiocuchar
cerrnoclimitscstdargcstdlibcwchar
cfenvclocalecstdboolcstringcwctype
cstdatomic    

In addition, TR1 includes as: -

Table 3.5. C++ TR1 Library Headers

tr1/arraytr1/memorytr1/regextr1/type_traitstr1/unordered_set
tr1/complextr1/randomtr1/tupletr1/unordered_maptr1/utility
tr1/functional    

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

tr1/cmathtr1/cfloattr1/cstdargtr1/cstdiotr1/ctime
tr1/ccomplextr1/cinttypestr1/cstdbooltr1/cstdlibtr1/cwchar
tr1/cfenvtr1/climitstr1/cstdinttr1/ctgmathtr1/cwctype

+

Table 3.5. C++ TR1 Library Headers

tr1/arraytr1/memorytr1/regextr1/type_traitstr1/unordered_set
tr1/complextr1/randomtr1/tupletr1/unordered_maptr1/utility
tr1/functional    

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

tr1/cmathtr1/cfloattr1/cstdargtr1/cstdiotr1/ctime
tr1/ccomplextr1/cinttypestr1/cstdbooltr1/cstdlibtr1/cwchar
tr1/cfenvtr1/climitstr1/cstdinttr1/ctgmathtr1/cwctype

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

Table 3.7. C++ ABI Headers

cxxabi.hcxxabi_forced.h

+

Table 3.7. C++ ABI Headers

cxxabi.hcxxabi_forced.h

And a large variety of extensions. -

Table 3.8. Extension Headers

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

Table 3.9. Extension Debug Headers

debug/bitsetdebug/listdebug/setdebug/unordered_mapdebug/vector
debug/dequedebug/mapdebug/stringdebug/unordered_set 

Table 3.10. Extension Parallel Headers

parallel/algorithmparallel/numeric

Mixing Headers

A few simple rules. +

Table 3.8. Extension Headers

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

Table 3.9. Extension Debug Headers

debug/bitsetdebug/listdebug/setdebug/unordered_mapdebug/vector
debug/dequedebug/mapdebug/stringdebug/unordered_set 

Table 3.10. 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/bk01pt01ch03s04.html b/libstdc++-v3/doc/html/manual/bk01pt01ch03s04.html
index 48002e7e6c4..87423b10658 100644
--- a/libstdc++-v3/doc/html/manual/bk01pt01ch03s04.html
+++ b/libstdc++-v3/doc/html/manual/bk01pt01ch03s04.html
@@ -22,7 +22,7 @@
       listed.

Configurable” (or “Not configurable”) means that the symbol is initially chosen (or not) based on --enable/--disable options at library build and configure time - (documented here), with the + (documented here), with the various --enable/--disable choices being translated to #define/#undef).

ABI means that changing from the default value may diff --git a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html index 6f7451e9ae7..88f2cd62f4d 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt02pr01.html +++ b/libstdc++-v3/doc/html/manual/bk01pt02pr01.html @@ -1,6 +1,6 @@ -

+

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/bk01pt04ch11.html b/libstdc++-v3/doc/html/manual/bk01pt04ch11.html index 905be71755b..e4058fa35d3 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt04ch11.html +++ b/libstdc++-v3/doc/html/manual/bk01pt04ch11.html @@ -90,7 +90,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 @@ -103,7 +103,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 @@ -140,7 +140,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 @@ -305,11 +305,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. @@ -317,28 +317,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.

+ . 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 diff --git a/libstdc++-v3/doc/html/manual/bk01pt06ch15.html b/libstdc++-v3/doc/html/manual/bk01pt06ch15.html index 948928c1a7c..08c35356ec0 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt06ch15.html +++ b/libstdc++-v3/doc/html/manual/bk01pt06ch15.html @@ -1,6 +1,6 @@ -Chapter 15. Facets aka Categories

Chapter 15. Facets aka Categories

ctype

Implementation

Specializations

+Chapter 15. Facets aka Categories

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

    + . 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 diff --git a/libstdc++-v3/doc/html/manual/bk01pt09pr02.html b/libstdc++-v3/doc/html/manual/bk01pt09pr02.html index 93b071c47b7..7fb7fac9b16 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt09pr02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt09pr02.html @@ -1,6 +1,6 @@ -

    +

    The neatest accomplishment of the algorithms chapter is that all the work is done via iterators, not containers directly. This means two important things: diff --git a/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html b/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html index d3c60f88747..a24243e185a 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html +++ b/libstdc++-v3/doc/html/manual/bk01pt12ch30s03.html @@ -19,6 +19,6 @@ mode or with debug mode. The following table provides the names and headers of the debugging containers: -

    Table 30.1. Debugging Containers

    ContainerHeaderDebug containerDebug header  
    std::bitsetbitset__gnu_debug::bitsetbitset  
    std::dequedeque__gnu_debug::dequedeque  
    std::listlist__gnu_debug::listlist  
    std::mapmap__gnu_debug::mapmap  
    std::multimapmap__gnu_debug::multimapmap  
    std::multisetset__gnu_debug::multisetset  
    std::setset__gnu_debug::setset  
    std::stringstring__gnu_debug::stringstring  
    std::wstringstring__gnu_debug::wstringstring  
    std::basic_stringstring__gnu_debug::basic_stringstring  
    std::vectorvector__gnu_debug::vectorvector  

    In addition, when compiling in C++0x mode, these additional +

    Table 30.1. Debugging Containers

    ContainerHeaderDebug containerDebug header  
    std::bitsetbitset__gnu_debug::bitsetbitset  
    std::dequedeque__gnu_debug::dequedeque  
    std::listlist__gnu_debug::listlist  
    std::mapmap__gnu_debug::mapmap  
    std::multimapmap__gnu_debug::multimapmap  
    std::multisetset__gnu_debug::multisetset  
    std::setset__gnu_debug::setset  
    std::stringstring__gnu_debug::stringstring  
    std::wstringstring__gnu_debug::wstringstring  
    std::basic_stringstring__gnu_debug::basic_stringstring  
    std::vectorvector__gnu_debug::vectorvector  

    In addition, when compiling in C++0x mode, these additional containers have additional debug capability. -

    Table 30.2. Debugging Containers C++0x

    ContainerHeaderDebug containerDebug header  
    std::unordered_mapunordered_map__gnu_debug::unordered_mapunordered_map  
    std::unordered_multimapunordered_map__gnu_debug::unordered_multimapunordered_map  
    std::unordered_setunordered_set__gnu_debug::unordered_setunordered_set  
    std::unordered_multisetunordered_set__gnu_debug::unordered_multisetunordered_set  

    +

    Table 30.2. Debugging Containers C++0x

    ContainerHeaderDebug containerDebug header  
    std::unordered_mapunordered_map__gnu_debug::unordered_mapunordered_map  
    std::unordered_multimapunordered_map__gnu_debug::unordered_multimapunordered_map  
    std::unordered_setunordered_set__gnu_debug::unordered_setunordered_set  
    std::unordered_multisetunordered_set__gnu_debug::unordered_multisetunordered_set  

    diff --git a/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html b/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html index 53a56bf526c..364998c0dc4 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html +++ b/libstdc++-v3/doc/html/manual/bk01pt12ch31s03.html @@ -63,4 +63,4 @@ Then compile this code with the prerequisite compiler flags flags for atomic operations.)

    The following table provides the names and headers of all the parallel algorithms that can be used in a similar manner: -

    Table 31.1. Parallel Algorithms

    AlgorithmHeaderParallel algorithmParallel header
    std::accumulatenumeric__gnu_parallel::accumulateparallel/numeric
    std::adjacent_differencenumeric__gnu_parallel::adjacent_differenceparallel/numeric
    std::inner_productnumeric__gnu_parallel::inner_productparallel/numeric
    std::partial_sumnumeric__gnu_parallel::partial_sumparallel/numeric
    std::adjacent_findalgorithm__gnu_parallel::adjacent_findparallel/algorithm
    std::countalgorithm__gnu_parallel::countparallel/algorithm
    std::count_ifalgorithm__gnu_parallel::count_ifparallel/algorithm
    std::equalalgorithm__gnu_parallel::equalparallel/algorithm
    std::findalgorithm__gnu_parallel::findparallel/algorithm
    std::find_ifalgorithm__gnu_parallel::find_ifparallel/algorithm
    std::find_first_ofalgorithm__gnu_parallel::find_first_ofparallel/algorithm
    std::for_eachalgorithm__gnu_parallel::for_eachparallel/algorithm
    std::generatealgorithm__gnu_parallel::generateparallel/algorithm
    std::generate_nalgorithm__gnu_parallel::generate_nparallel/algorithm
    std::lexicographical_comparealgorithm__gnu_parallel::lexicographical_compareparallel/algorithm
    std::mismatchalgorithm__gnu_parallel::mismatchparallel/algorithm
    std::searchalgorithm__gnu_parallel::searchparallel/algorithm
    std::search_nalgorithm__gnu_parallel::search_nparallel/algorithm
    std::transformalgorithm__gnu_parallel::transformparallel/algorithm
    std::replacealgorithm__gnu_parallel::replaceparallel/algorithm
    std::replace_ifalgorithm__gnu_parallel::replace_ifparallel/algorithm
    std::max_elementalgorithm__gnu_parallel::max_elementparallel/algorithm
    std::mergealgorithm__gnu_parallel::mergeparallel/algorithm
    std::min_elementalgorithm__gnu_parallel::min_elementparallel/algorithm
    std::nth_elementalgorithm__gnu_parallel::nth_elementparallel/algorithm
    std::partial_sortalgorithm__gnu_parallel::partial_sortparallel/algorithm
    std::partitionalgorithm__gnu_parallel::partitionparallel/algorithm
    std::random_shufflealgorithm__gnu_parallel::random_shuffleparallel/algorithm
    std::set_unionalgorithm__gnu_parallel::set_unionparallel/algorithm
    std::set_intersectionalgorithm__gnu_parallel::set_intersectionparallel/algorithm
    std::set_symmetric_differencealgorithm__gnu_parallel::set_symmetric_differenceparallel/algorithm
    std::set_differencealgorithm__gnu_parallel::set_differenceparallel/algorithm
    std::sortalgorithm__gnu_parallel::sortparallel/algorithm
    std::stable_sortalgorithm__gnu_parallel::stable_sortparallel/algorithm
    std::unique_copyalgorithm__gnu_parallel::unique_copyparallel/algorithm

    +

    Table 31.1. Parallel Algorithms

    AlgorithmHeaderParallel algorithmParallel header
    std::accumulatenumeric__gnu_parallel::accumulateparallel/numeric
    std::adjacent_differencenumeric__gnu_parallel::adjacent_differenceparallel/numeric
    std::inner_productnumeric__gnu_parallel::inner_productparallel/numeric
    std::partial_sumnumeric__gnu_parallel::partial_sumparallel/numeric
    std::adjacent_findalgorithm__gnu_parallel::adjacent_findparallel/algorithm
    std::countalgorithm__gnu_parallel::countparallel/algorithm
    std::count_ifalgorithm__gnu_parallel::count_ifparallel/algorithm
    std::equalalgorithm__gnu_parallel::equalparallel/algorithm
    std::findalgorithm__gnu_parallel::findparallel/algorithm
    std::find_ifalgorithm__gnu_parallel::find_ifparallel/algorithm
    std::find_first_ofalgorithm__gnu_parallel::find_first_ofparallel/algorithm
    std::for_eachalgorithm__gnu_parallel::for_eachparallel/algorithm
    std::generatealgorithm__gnu_parallel::generateparallel/algorithm
    std::generate_nalgorithm__gnu_parallel::generate_nparallel/algorithm
    std::lexicographical_comparealgorithm__gnu_parallel::lexicographical_compareparallel/algorithm
    std::mismatchalgorithm__gnu_parallel::mismatchparallel/algorithm
    std::searchalgorithm__gnu_parallel::searchparallel/algorithm
    std::search_nalgorithm__gnu_parallel::search_nparallel/algorithm
    std::transformalgorithm__gnu_parallel::transformparallel/algorithm
    std::replacealgorithm__gnu_parallel::replaceparallel/algorithm
    std::replace_ifalgorithm__gnu_parallel::replace_ifparallel/algorithm
    std::max_elementalgorithm__gnu_parallel::max_elementparallel/algorithm
    std::mergealgorithm__gnu_parallel::mergeparallel/algorithm
    std::min_elementalgorithm__gnu_parallel::min_elementparallel/algorithm
    std::nth_elementalgorithm__gnu_parallel::nth_elementparallel/algorithm
    std::partial_sortalgorithm__gnu_parallel::partial_sortparallel/algorithm
    std::partitionalgorithm__gnu_parallel::partitionparallel/algorithm
    std::random_shufflealgorithm__gnu_parallel::random_shuffleparallel/algorithm
    std::set_unionalgorithm__gnu_parallel::set_unionparallel/algorithm
    std::set_intersectionalgorithm__gnu_parallel::set_intersectionparallel/algorithm
    std::set_symmetric_differencealgorithm__gnu_parallel::set_symmetric_differenceparallel/algorithm
    std::set_differencealgorithm__gnu_parallel::set_differenceparallel/algorithm
    std::sortalgorithm__gnu_parallel::sortparallel/algorithm
    std::stable_sortalgorithm__gnu_parallel::stable_sortparallel/algorithm
    std::unique_copyalgorithm__gnu_parallel::unique_copyparallel/algorithm

    diff --git a/libstdc++-v3/doc/html/manual/bk01pt12pr03.html b/libstdc++-v3/doc/html/manual/bk01pt12pr03.html index fc79407e59b..c7ade7fefd7 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt12pr03.html +++ b/libstdc++-v3/doc/html/manual/bk01pt12pr03.html @@ -1,6 +1,6 @@ -

    +

    Here we will make an attempt at describing the non-Standard extensions to the library. Some of these are from SGI's STL, some of these are GNU's, and some just seemed to appear on the doorstep. diff --git a/libstdc++-v3/doc/html/manual/build.html b/libstdc++-v3/doc/html/manual/build.html deleted file mode 100644 index 4322717cf52..00000000000 --- a/libstdc++-v3/doc/html/manual/build.html +++ /dev/null @@ -1,95 +0,0 @@ - - -Build

    Build

    - Because libstdc++ is part of GCC, the primary source for - installation instructions is - the GCC install page. - Additional data is given here only where it applies to libstdc++. -

    Prerequisites

    - The list of software needed to build the library is kept with the - rest of the compiler, at - - http://gcc.gnu.org/install/prerequisites.html. The same page - also lists the tools you will need if you wish to modify the source. -

    As of GCC 4.0.1 the minimum version of binutils required to build - libstdc++ is 2.15.90.0.1.1. You can get snapshots - (as well as releases) of binutils from - - ftp://sources.redhat.com/pub/binutils. - Older releases of libstdc++ do not require such a recent version, - but to take full advantage of useful space-saving features and - bug-fixes you should use a recent binutils if possible. - The configure process will automatically detect and use these - features if the underlying support is present. -

    - Finally, a few system-specific requirements: -

    linux

    - If gcc 3.1.0 or later on is being used on linux, an attempt - will be made to use "C" library functionality necessary for - C++ named locale support. For gcc 3.2.1 and later, this - means that glibc 2.2.5 or later is required and the "C" - library de_DE locale information must be installed. -

    - Note however that the sanity checks involving the de_DE - locale are skipped when an explicit --enable-clocale=gnu - configure option is used: only the basic checks are carried - out, defending against misconfigurations. -

    - If the 'gnu' locale model is being used, the following - locales are used and tested in the libstdc++ testsuites. - The first column is the name of the locale, the second is - the character set it is expected to use. -

    -de_DE               ISO-8859-1
    -de_DE@euro          ISO-8859-15
    -en_HK               ISO-8859-1
    -en_PH               ISO-8859-1
    -en_US               ISO-8859-1
    -en_US.ISO-8859-1    ISO-8859-1
    -en_US.ISO-8859-15   ISO-8859-15
    -en_US.UTF-8         UTF-8
    -es_ES               ISO-8859-1
    -es_MX               ISO-8859-1
    -fr_FR               ISO-8859-1
    -fr_FR@euro          ISO-8859-15
    -is_IS               UTF-8
    -it_IT               ISO-8859-1
    -ja_JP.eucjp         EUC-JP
    -se_NO.UTF-8         UTF-8
    -ta_IN               UTF-8
    -zh_TW               BIG5
    -

    Failure to have the underlying "C" library locale - information installed will mean that C++ named locales for the - above regions will not work: because of this, the libstdc++ - testsuite will skip the named locale tests. If this isn't an - issue, don't worry about it. If named locales are needed, the - underlying locale information must be installed. Note that - rebuilding libstdc++ after the "C" locales are installed is not - necessary. -

    - To install support for locales, do only one of the following: -

    • install all locales

      • with RedHat Linux: -

        export LC_ALL=C -

        rpm -e glibc-common --nodeps -

        - rpm -i --define "_install_langs all" - glibc-common-2.2.5-34.i386.rpm - -

      • - Instructions for other operating systems solicited. -

    • install just the necessary locales

      • with Debian Linux:

        Add the above list, as shown, to the file - /etc/locale.gen

        run /usr/sbin/locale-gen

      • on most Unix-like operating systems:

        localedef -i de_DE -f ISO-8859-1 de_DE

        (repeat for each entry in the above list)

      • - Instructions for other operating systems solicited. -

    Make

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

    When building libstdc++ you'll have to configure - the entire gccsrcdir directory. The full list of libstdc++ - specific configuration options, not dependent on the specific compiler - release being used, can be found here. -

    Consider possibly using --enable-languages=c++ to save time by only - building the C++ language parts. -

    -   cd gccbuilddir
    -   gccsrcdir/configure --prefix=destdir --other-opts...
    diff --git a/libstdc++-v3/doc/html/manual/codecvt.html b/libstdc++-v3/doc/html/manual/codecvt.html index 258acd27814..c46c52a5014 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.

    + . 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 - .

    + .

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

    + .

    The Unicode HOWTO . Bruno Haible. - .

    + .

    UTF-8 and Unicode FAQ for Unix/Linux . Markus Khun. diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html new file mode 100644 index 00000000000..0f7285b0b0d --- /dev/null +++ b/libstdc++-v3/doc/html/manual/configure.html @@ -0,0 +1,199 @@ + + +Configure

    Configure

    + When configuring libstdc++, you'll have to configure the entire + gccsrcdir directory. Consider using the + toplevel gcc configuration option + --enable-languages=c++, which saves time by only + building the C++ toolchain. +

    + Here are all of the configure options specific to libstdc++. Keep + in mind that + + they + all have opposite forms as well (enable/disable and + with/without). The defaults are for the current + development sources, which may be different than those + for released versions. +

    The canonical way to find out the configure options that are + available for a given set of libstdc++ sources is to go to the + source directory and then type:./configure --help. +

    --enable-multilib[default]

    This is part of the generic multilib support for building cross + compilers. As such, targets like "powerpc-elf" will have + libstdc++ built many different ways: "-msoft-float" + and not, etc. A different libstdc++ will be built for each of + the different multilib versions. This option is on by default. +

    --enable-sjlj-exceptions

    Forces old, set-jump/long-jump exception handling model. If + at all possible, the new, frame unwinding exception handling routines + should be used instead, as they significantly reduce both + runtime memory usage and executable size. This option can + change the library ABI. +

    --enable-version-specific-runtime-libs

    Specify that run-time libraries should be installed in the + compiler-specific subdirectory (i.e., + ${libdir}/gcc-lib/${target_alias}/${gcc_version}) + instead of ${libdir}. This option is useful if you + intend to use several versions of gcc in parallel. In addition, + libstdc++'s include files will be installed in + ${libdir}/gcc-lib/${target_alias}/${gcc_version}/include/g++, + unless you also specify + --with-gxx-include-dir=dirname during configuration. +

    --with-gxx-include-dir=<include-files dir>

    Adds support for named libstdc++ include directory. For instance, + the following puts all the libstdc++ headers into a directory + called "2.97-20001008" instead of the usual + "c++/(version)". +

    +   --with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008
    --enable-cstdio

    This is an abbreviated form of '--enable-cstdio=stdio' + (described next). This option can change the library ABI. +

    --enable-cstdio=OPTION

    Select a target-specific I/O package. At the moment, the only + choice is to use 'stdio', a generic "C" abstraction. + The default is 'stdio'. +

    --enable-clocale

    This is an abbreviated form of '--enable-clocale=generic' + (described next). This option can change the library ABI. +

    --enable-clocale=OPTION

    Select a target-specific underlying locale package. The + choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix + (IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets, + 'gnu' to specify a model based on functionality from the GNU C + library (langinfo/iconv/gettext) (from glibc, the GNU C + library), or 'generic' to use a generic "C" + abstraction which consists of "C" locale info. +

    As part of the configuration process, the "C" library is + probed both for sufficient vintage, and installed locale + data. If either of these elements are not present, the C++ + locale model default to 'generic.' On glibc-based systems of + version 2.2.5 and above with installed locale files, 'gnu' is + automatically selected. +

    --enable-libstdcxx-allocator

    This is an abbreviated form of + '--enable-libstdcxx-allocator=auto' (described + next). This option can change the library ABI. +

    --enable-libstdcxx-allocator=OPTION

    Select a target-specific underlying std::allocator. The + choices are 'new' to specify a wrapper for new, 'malloc' to + specify a wrapper for malloc, 'mt' for a fixed power of two allocator, + 'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator. + This option can change the library ABI. See this page for more information on allocator + extensions +

    --enable-cheaders=OPTION

    This allows the user to define the approach taken for C header + compatibility with C++. Options are c, c_std, and c_global. + These correspond to the source directory's include/c, + include/c_std, and include/c_global, and may also include + include/c_compatibility. The default is c_global. +

    --enable-threads

    This is an abbreviated form of '--enable-threads=yes' + (described next). This option can change the library ABI. +

    --enable-threads=OPTION

    Select a threading library. A full description is given in the + general compiler + configuration instructions. +

    --enable-libstdcxx-debug

    Build separate debug libraries in addition to what is normally built. + By default, the debug libraries are compiled with + CXXFLAGS='-g3 -O0 -fno-inline' + , are installed in ${libdir}/debug, and have the + same names and versioning information as the non-debug + libraries. This option is off by default. +

    Note this make command, executed in + the build directory, will do much the same thing, without the + configuration difference and without building everything twice: + make CXXFLAGS='-g3 -O0 -fno-inline' all +

    --enable-libstdcxx-debug-flags=FLAGS

    This option is only valid when --enable-debug + is also specified, and applies to the debug builds only. With + this option, you can pass a specific string of flags to the + compiler to use when building the debug versions of libstdc++. + FLAGS is a quoted string of options, like +

    +  --enable-libstdcxx-debug-flags='-g3 -O1 -fno-inline'
    --enable-cxx-flags=FLAGS

    With this option, you can pass a string of -f (functionality) + flags to the compiler to use when building libstdc++. This + option can change the library ABI. FLAGS is a quoted string of + options, like +

    +  --enable-cxx-flags='-fvtable-gc -fomit-frame-pointer -ansi'

    + Note that the flags don't necessarily have to all be -f flags, + as shown, but usually those are the ones that will make sense + for experimentation and configure-time overriding. +

    The advantage of --enable-cxx-flags over setting CXXFLAGS in + the 'make' environment is that, if files are automatically + rebuilt, the same flags will be used when compiling those files + as well, so that everything matches. +

    Fun flags to try might include combinations of +

    +  -fstrict-aliasing
    +  -fno-exceptions
    +  -ffunction-sections
    +  -fvtable-gc

    and opposite forms (-fno-) of the same. Tell us (the libstdc++ + mailing list) if you discover more! +

    --enable-c99

    The "long long" type was introduced in C99, along + with many other functions for wide characters, and math + classification macros, etc. If enabled, all C99 functions not + specified by the C++ standard will be put into namespace + __gnu_cxx, and then all these names will + be injected into namespace std, so that C99 functions can be + used "as if" they were in the C++ standard (as they + will eventually be in some future revision of the standard, + without a doubt). By default, C99 support is on, assuming the + configure probes find all the necessary functions and bits + necessary. This option can change the library ABI. +

    --enable-wchar_t[default]

    Template specializations for the "wchar_t" type are + required for wide character conversion support. Disabling + wide character specializations may be expedient for initial + porting efforts, but builds only a subset of what is required by + ISO, and is not recommended. By default, this option is on. + This option can change the library ABI. +

    --enable-long-long

    The "long long" type was introduced in C99. It is + provided as a GNU extension to C++98 in g++. This flag builds + support for "long long" into the library (specialized + templates and the like for iostreams). This option is on by default: + if enabled, users will have to either use the new-style "C" + headers by default (i.e., <cmath> not <math.h>) + or add appropriate compile-time flags to all compile lines to + allow "C" visibility of this feature (on GNU/Linux, + the flag is -D_ISOC99_SOURCE, which is added automatically via + CPLUSPLUS_CPP_SPEC's addition of _GNU_SOURCE). + This option can change the library ABI. +

    --enable-fully-dynamic-string

    This option enables a special version of basic_string avoiding + the optimization that allocates empty objects in static memory. + Mostly useful together with shared memory allocators, see PR + libstdc++/16612 for details. +

    --enable-concept-checks

    This turns on additional compile-time checks for instantiated + library templates, in the form of specialized templates, + described here. They + can help users discover when they break the rules of the STL, before + their programs run. +

    --enable-symvers[=style]

    In 3.1 and later, tries to turn on symbol versioning in the + shared library (if a shared library has been + requested). Values for 'style' that are currently supported + are 'gnu', 'gnu-versioned-namespace', 'darwin', and + 'darwin-export'. Both gnu- options require that a recent + version of the GNU linker be in use. Both darwin options are + equivalent. With no style given, the configure script will try + to guess correct defaults for the host system, probe to see if + additional requirements are necessary and present for + activation, and if so, will turn symbol versioning on. This + option can change the library ABI. +

    --enable-visibility

    In 4.2 and later, enables or disables visibility attributes. + If enabled (as by default), and the compiler seems capable of + passing the simple sanity checks thrown at it, adjusts items + in namespace std, namespace std::tr1, and namespace __gnu_cxx + so that -fvisibility options work. +

    --enable-libstdcxx-pch

    In 3.4 and later, tries to turn on the generation of + stdc++.h.gch, a pre-compiled file including all the standard + C++ includes. If enabled (as by default), and the compiler + seems capable of passing the simple sanity checks thrown at + it, try to build stdc++.h.gch as part of the make process. + In addition, this generated file is used later on (by appending + --include bits/stdc++.h to CXXFLAGS) when running the + testsuite. +

    --disable-hosted-libstdcxx

    + By default, a complete hosted C++ library is + built. The C++ Standard also describes a + freestanding environment, in which only a + minimal set of headers are provided. This option builds such an + environment. +

    --enable-clock-gettime

    This is an abbreviated form of + '--enable-clock-gettime=yes'(described next). +

    --enable-clock-gettime=OPTION

    Enables link-type checks for the availability of the + clock_gettime clocks, used in [time.clock] of the current C++0x draft. + The choice OPTION=yes checks for the availability of the monotonic and + realtime clocks in libc and libposix4. In case of need the latter is + also linked to libstdc++ as part of the build process. OPTION=rt + also searches (and, in case, links) librt. Note that the latter + is not always desirable because, in glibc, for example, in turn it + triggers the linking of libpthread too, which activates locking, + a large overhead for single-thread programs. OPTION=no skips the + tests completely. The default is OPTION=no. +

    diff --git a/libstdc++-v3/doc/html/manual/debug.html b/libstdc++-v3/doc/html/manual/debug.html index a975621a7c5..311438cee91 100644 --- a/libstdc++-v3/doc/html/manual/debug.html +++ b/libstdc++-v3/doc/html/manual/debug.html @@ -11,19 +11,20 @@ The default optimizations and debug flags for a libstdc++ build are -g -O2. However, both debug and optimization flags can be varied to change debugging characteristics. For - instance, turning off all optimization via the -g -O0 - flag will disable inlining, so that stepping through all - functions, including inlined constructors and destructors, is - possible. In addition, - -fno-eliminate-unused-debug-types can be used when - additional debug information, such as nested class info, is - desired. + instance, turning off all optimization via the -g -O0 + -fno-inline flags will disable inlining and optimizations, + and add debugging information, so that stepping through all functions, + (including inlined constructors and destructors) is possible. In + addition, -fno-eliminate-unused-debug-types can be + used when additional debug information, such as nested class info, + is desired.

    Or, the debug format that the compiler and debugger use to communicate information about source constructs can be changed via - -gdwarf-2 or -gstabs flags: some - debugging formats permit more expressive type and scope information - to be shown in gdb. The default debug information for a particular + -gdwarf-2 or -gstabs flags: some debugging + formats permit more expressive type and scope information to be + shown in gdb. Expressiveness can be enhanced by flags like + -g3. The default debug information for a particular platform can be identified via the value set by the PREFERRED_DEBUGGING_TYPE macro in the gcc sources.

    @@ -43,15 +44,15 @@ debug build will persist, without having to specify CXXFLAGS, and the debug library will be installed in a separate directory tree, in (prefix)/lib/debug. For - more information, look at the configuration options document. + more information, look at the configuration section.

    A second approach is to use the configuration flags

    -     make CXXFLAGS='-g3 -O0' all
    +     make CXXFLAGS='-g3 -fno-inline -O0' all
     

    This quick and dirty approach is often sufficient for quick debugging tasks, when you cannot or don't want to recompile your - application to use the debug mode.

    Memory Leak Hunting

    + application to use the debug mode.

    Memory Leak Hunting

    There are various third party memory tracing and debug utilities that can be used to provide detailed memory allocation information about C++ code. An exhaustive list of tools is not going to be @@ -66,7 +67,7 @@ thing of great importance to keep in mind when debugging C++ code that uses new and delete: there are different kinds of allocation schemes that can be used by - std::allocator . For implementation details, see the mt allocator documentation and + std::allocator . For implementation details, see the mt allocator documentation and look specifically for GLIBCXX_FORCE_NEW.

    In a nutshell, the default allocator used by @@ -122,7 +123,7 @@ valgrind -v --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes a.out

    Using gdb

    - Many options are available for gdb itself: please see + Many options are available for gdb itself: please see "GDB features for C++" in the gdb documentation. Also recommended: the other parts of this manual.

    diff --git a/libstdc++-v3/doc/html/manual/intro.html b/libstdc++-v3/doc/html/manual/intro.html index 9020ed815be..d4f976ba112 100644 --- a/libstdc++-v3/doc/html/manual/intro.html +++ b/libstdc++-v3/doc/html/manual/intro.html @@ -1,3 +1,3 @@ -Part I. Introduction

    +Part I. Introduction diff --git a/libstdc++-v3/doc/html/manual/messages.html b/libstdc++-v3/doc/html/manual/messages.html index 5284e8f11cc..4a94e5805eb 100644 --- a/libstdc++-v3/doc/html/manual/messages.html +++ b/libstdc++-v3/doc/html/manual/messages.html @@ -241,38 +241,38 @@ void test01() model. As of this writing, it is unknown how to query to see if a specified message catalog exists using the gettext package. -

    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 f008aa39bc6..57fe700a76a 100644 --- a/libstdc++-v3/doc/html/manual/parallel_mode.html +++ b/libstdc++-v3/doc/html/manual/parallel_mode.html @@ -10,11 +10,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/shared_ptr.html b/libstdc++-v3/doc/html/manual/shared_ptr.html index 88dc97de6d0..b45a9f2d816 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 8b932707032..1c4833ff681 100644 --- a/libstdc++-v3/doc/html/manual/spine.html +++ b/libstdc++-v3/doc/html/manual/spine.html @@ -2,6 +2,6 @@ The GNU C++ Library

    The GNU C++ Library

    +


    Table of Contents

    I. Introduction
    1. Status
    Implementation Status
    C++ 1998
    C++ TR1
    C++ 200x
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Configure
    Build
    Prerequisites
    Make
    Test
    Organization
    Naming Conventions
    Utilities
    Running the Testsuite
    New Test Cases
    Test Harness Details
    Future
    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. 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. 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. Strings
    13. String Classes
    Simple Transformations
    Case Sensitivity
    Arbitrary Character Types
    Tokenizing
    Shrink to Fit
    CString (MFC)
    VI. Localization
    14. Locales
    locale
    Requirements
    Design
    Implementation
    Future
    15. Facets aka Categories
    ctype
    Implementation
    Future
    codecvt
    Requirements
    Design
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Use
    Future
    VII. Containers
    16. Sequences
    list
    list::size() is O(n)
    vector
    Space Overhead Management
    17. Associative
    Insertion Hints
    bitset
    Size Variable
    Type String
    18. Interacting with C
    Containers vs. Arrays
    VIII. Iterators
    19. Predefined
    Iterators vs. Pointers
    One Past the End
    IX. Algorithms
    20. Mutating
    swap
    Specializations
    X. Numerics
    21. Complex
    complex Processing
    22. Generalized Operations
    23. Interacting with C
    Numerics vs. Arrays
    C99
    XI. Input and Output
    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
    More 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. 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. Free Software Needs Free Documentation
    D. GNU General Public License
    Preamble
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    Section 0
    Section 1
    Section 2
    Section 3
    Section 4
    Section 5
    Section 6
    Section 7
    Section 8
    Section 9
    Section 10
    NO WARRANTY Section 11
    Section 12
    How to Apply These Terms to Your New Programs
    E. GNU Free Documentation License
    +


    Table of Contents

    I. Introduction
    1. Status
    Implementation Status
    C++ 1998
    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. 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. 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. Strings
    13. String Classes
    Simple Transformations
    Case Sensitivity
    Arbitrary Character Types
    Tokenizing
    Shrink to Fit
    CString (MFC)
    VI. Localization
    14. Locales
    locale
    Requirements
    Design
    Implementation
    Future
    15. Facets aka Categories
    ctype
    Implementation
    Future
    codecvt
    Requirements
    Design
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Use
    Future
    VII. Containers
    16. Sequences
    list
    list::size() is O(n)
    vector
    Space Overhead Management
    17. Associative
    Insertion Hints
    bitset
    Size Variable
    Type String
    18. Interacting with C
    Containers vs. Arrays
    VIII. Iterators
    19. Predefined
    Iterators vs. Pointers
    One Past the End
    IX. Algorithms
    20. Mutating
    swap
    Specializations
    X. Numerics
    21. Complex
    complex Processing
    22. Generalized Operations
    23. Interacting with C
    Numerics vs. Arrays
    C99
    XI. Input and Output
    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
    More 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. 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. Free Software Needs Free Documentation
    D. GNU General Public License
    Preamble
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    Section 0
    Section 1
    Section 2
    Section 3
    Section 4
    Section 5
    Section 6
    Section 7
    Section 8
    Section 9
    Section 10
    NO WARRANTY Section 11
    Section 12
    How to Apply These Terms to Your New Programs
    E. GNU Free Documentation License
    diff --git a/libstdc++-v3/doc/html/manual/test.html b/libstdc++-v3/doc/html/manual/test.html index 72213ba18c5..297899eb3fd 100644 --- a/libstdc++-v3/doc/html/manual/test.html +++ b/libstdc++-v3/doc/html/manual/test.html @@ -1,6 +1,9 @@ -Test

    Test

    Organization

    +Test

    Test

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

    Organization

    Directory Layout

    The directory libsrcdir/testsuite contains the individual test cases organized in sub-directories corresponding to chapters of the C++ standard (detailed below), the dejagnu test @@ -69,7 +72,7 @@ util Files for libtestc++, utilities and testing routines.

    All new tests should be written with the policy of one test case, one file in mind. -

    Naming Conventions

    +

    Naming Conventions

    In addition, there are some special names and suffixes that are used within the testsuite to designate particular kinds of tests. @@ -123,69 +126,7 @@ cat 27_io/objects/char/3_xin.in | a.out analyze runtime performance, for performance regression testing, or for other optimization related analysis. At the moment, these test cases are not run by default. -

    Utilities

    -

    - The testsuite directory also contains some files that implement - functionality that is intended to make writing test cases easier, - or to avoid duplication, or to provide error checking in a way that - is consistent across platforms and test harnesses. A stand-alone - executable, called abi_check, and a static - library called libtestc++ are - constructed. Both of these items are not installed, and only used - during testing. -

    - These files include the following functionality: -

    • - testsuite_abi.h, - testsuite_abi.cc, - testsuite_abi_check.cc -

      - Creates the executable abi_check. - Used to check correctness of symbol versioning, visibility of - exported symbols, and compatibility on symbols in the shared - library, for hosts that support this feature. More information - can be found in the ABI documentation here -

    • - testsuite_allocator.h, - testsuite_allocator.cc -

      - Contains specialized allocators that keep track of construction - and destruction. Also, support for overriding global new and - delete operators, including verification that new and delete - are called during execution, and that allocation over max_size - fails. -

    • - testsuite_character.h -

      - Contains std::char_traits and - std::codecvt specializations for a user-defined - POD. -

    • - testsuite_hooks.h, - testsuite_hooks.cc -

      - A large number of utilities, including: -

      • VERIFY

      • set_memory_limits

      • verify_demangle

      • run_tests_wrapped_locale

      • run_tests_wrapped_env

      • try_named_locale

      • try_mkfifo

      • func_callback

      • counter

      • copy_tracker

      • copy_constructor

      • assignment_operator

      • destructor

      • pod_char, pod_int and associated char_traits specializations

    • - testsuite_io.h -

      - Error, exception, and constraint checking for - std::streambuf, std::basic_stringbuf, std::basic_filebuf. -

    • - testsuite_iterators.h -

      - Wrappers for various iterators. -

    • - testsuite_performance.h -

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

      • time_counter

      • resource_counter

      • report_performance

    Running the Testsuite

    Basic Results

    - There are several options for running tests, including testing - the regression tests, testing a subset of the regression tests, - testing the performance tests, testing just compilation, testing - installed tools, etc. In addition, there is a special rule for - checking the exported symbols of the shared library. -

    +

    Running the Testsuite

    Basic

    You can check the status of the build without installing it using the dejagnu harness, much like the rest of the gcc tools.

     make check

    in the libbuilddir directory.

    or

     make check-target-libstdc++-v3

    in the gccbuilddir directory. @@ -200,12 +141,18 @@ cat 27_io/objects/char/3_xin.in | a.out output, and the executable output (if any).

    Archives of test results for various versions and platforms are - available on the GCC website in the build + available on the GCC website in the build status section of each individual release, and are also archived on a daily basis on the gcc-testresults mailing list. Please check either of these places for a similar combination of source version, operating system, and host CPU. -

    Options

    +

    Variations

    + There are several options for running tests, including testing + the regression tests, testing a subset of the regression tests, + testing the performance tests, testing just compilation, testing + installed tools, etc. In addition, there is a special rule for + checking the exported symbols of the shared library. +

    To debug the dejagnu test harness during runs, try invoking with a specific argument to the variable RUNTESTFLAGS, as below.

    @@ -325,7 +272,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
           We are interested in any strange failures of the testsuite;
           please email the main libstdc++ mailing list if you see
           something odd or have questions.
    -   

    Test Permutations

    +

    Permutations

    To run the libstdc++ test suite under the debug mode, edit libstdc++-v3/scripts/testsuite_flags to add the compile-time flag -D_GLIBCXX_DEBUG to the @@ -336,10 +283,16 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite precisely the same results under debug mode that it does under release mode: any deviation indicates an error in either the library or the test suite. +

    + The parallel + mode can be tested in much the same manner, substituting + -D_GLIBCXX_PARALLEL for + -D_GLIBCXX_DEBUG in the previous paragraph.

    Or, just run the testsuites with CXXFLAGS - set to -D_GLIBCXX_DEBUG. -

    New Test Cases

    + set to -D_GLIBCXX_DEBUG or + -D_GLIBCXX_PARALLEL. +

    Writing a new test case

    The first step in making a new test case is to choose the correct directory and file name, given the organization as previously described. @@ -450,8 +403,10 @@ up in the normal.exp file. // { dg-options "-O0" { target *-*-* } }

    More examples can be found in the libstdc++-v3/testsuite/*/*.cc files. -

    Test Harness Details

    - Underlying details of testing are abstracted via the GNU Dejagnu package. +

    Test Harness and Utilities

    Dejagnu Harness Details

    + Underlying details of testing for conformance and regressions are + abstracted via the GNU Dejagnu package. This is similar to the + rest of GCC.

    This is information for those looking at making changes to the testsuite structure, and/or needing to trace dejagnu's actions with --verbose. This will not be useful to people who are "merely" adding new tests to the existing @@ -475,29 +430,60 @@ callbacks loaded from the support library.

    The config directory is searched for any particular "target board" information unique to this library. This is currently unused and sets only default variables. -

    Future

    +

    Utilities

    -Shared runs need to be implemented, for targets that support shared libraries. -

    -Diffing of expected output to standard streams needs to be finished off. -

    -The V3 testing framework supports, or will eventually support, -additional keywords for the purpose of easing the job of writing -test cases. All V3-keywords are of the form @xxx@. -Currently plans for supported keywords include: -

    @require@ <files>

    - The existence of <files> is essential for the test to complete - successfully. For example, a test case foo.C using bar.baz as - input file could say -

    -	    // @require@ bar.baz

    - The special variable % stands for the rootname, e.g. the - file-name without its `.C' extension. Example of use (taken - verbatim from 27_io/filebuf.cc) -

    -	   // @require@ %-*.tst %-*.txt
    @diff@ <first-list> <second-list>

    - After the test case compiles and ran successfully, diff - <first-list> against <second-list>, these lists should - have the same length. The test fails if diff returns non-zero a - pair of files. -

    + The testsuite directory also contains some files that implement + functionality that is intended to make writing test cases easier, + or to avoid duplication, or to provide error checking in a way that + is consistent across platforms and test harnesses. A stand-alone + executable, called abi_check, and a static + library called libtestc++ are + constructed. Both of these items are not installed, and only used + during testing. +

    + These files include the following functionality: +

    • + testsuite_abi.h, + testsuite_abi.cc, + testsuite_abi_check.cc +

      + Creates the executable abi_check. + Used to check correctness of symbol versioning, visibility of + exported symbols, and compatibility on symbols in the shared + library, for hosts that support this feature. More information + can be found in the ABI documentation here +

    • + testsuite_allocator.h, + testsuite_allocator.cc +

      + Contains specialized allocators that keep track of construction + and destruction. Also, support for overriding global new and + delete operators, including verification that new and delete + are called during execution, and that allocation over max_size + fails. +

    • + testsuite_character.h +

      + Contains std::char_traits and + std::codecvt specializations for a user-defined + POD. +

    • + testsuite_hooks.h, + testsuite_hooks.cc +

      + A large number of utilities, including: +

      • VERIFY

      • set_memory_limits

      • verify_demangle

      • run_tests_wrapped_locale

      • run_tests_wrapped_env

      • try_named_locale

      • try_mkfifo

      • func_callback

      • counter

      • copy_tracker

      • copy_constructor

      • assignment_operator

      • destructor

      • pod_char, pod_int and associated char_traits specializations

    • + testsuite_io.h +

      + Error, exception, and constraint checking for + std::streambuf, std::basic_stringbuf, std::basic_filebuf. +

    • + testsuite_iterators.h +

      + Wrappers for various iterators. +

    • + testsuite_performance.h +

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

      • time_counter

      • resource_counter

      • report_performance

    diff --git a/libstdc++-v3/doc/html/spine.html b/libstdc++-v3/doc/html/spine.html index 87cbe66353c..432f577c763 100644 --- a/libstdc++-v3/doc/html/spine.html +++ b/libstdc++-v3/doc/html/spine.html @@ -2,4 +2,4 @@ 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


    Table of Contents

    The GNU C++ Library
    I. Introduction
    1. Status
    Implementation Status
    C++ 1998
    C++ TR1
    C++ 200x
    License
    The Code: GPL
    The Documentation: GPL, FDL
    Bugs
    Implementation Bugs
    Standard Bugs
    2. Setup
    Configure
    Build
    Prerequisites
    Make
    Test
    Organization
    Naming Conventions
    Utilities
    Running the Testsuite
    New Test Cases
    Test Harness Details
    Future
    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. 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. 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. Strings
    13. String Classes
    Simple Transformations
    Case Sensitivity
    Arbitrary Character Types
    Tokenizing
    Shrink to Fit
    CString (MFC)
    VI. Localization
    14. Locales
    locale
    Requirements
    Design
    Implementation
    Future
    15. Facets aka Categories
    ctype
    Implementation
    Future
    codecvt
    Requirements
    Design
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Use
    Future
    VII. Containers
    16. Sequences
    list
    list::size() is O(n)
    vector
    Space Overhead Management
    17. Associative
    Insertion Hints
    bitset
    Size Variable
    Type String
    18. Interacting with C
    Containers vs. Arrays
    VIII. Iterators
    19. Predefined
    Iterators vs. Pointers
    One Past the End
    IX. Algorithms
    20. Mutating
    swap
    Specializations
    X. Numerics
    21. Complex
    complex Processing
    22. Generalized Operations
    23. Interacting with C
    Numerics vs. Arrays
    C99
    XI. Input and Output
    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
    More 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. 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. Free Software Needs Free Documentation
    D. GNU General Public License
    Preamble
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    Section 0
    Section 1
    Section 2
    Section 3
    Section 4
    Section 5
    Section 6
    Section 7
    Section 8
    Section 9
    Section 10
    NO WARRANTY Section 11
    Section 12
    How to Apply These Terms to Your New Programs
    E. GNU Free Documentation License
    API and Source Level Documentation
    Frequently Asked Questions
    +


    Table of Contents

    The GNU C++ Library
    I. Introduction
    1. Status
    Implementation Status
    C++ 1998
    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. 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. 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. Strings
    13. String Classes
    Simple Transformations
    Case Sensitivity
    Arbitrary Character Types
    Tokenizing
    Shrink to Fit
    CString (MFC)
    VI. Localization
    14. Locales
    locale
    Requirements
    Design
    Implementation
    Future
    15. Facets aka Categories
    ctype
    Implementation
    Future
    codecvt
    Requirements
    Design
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Use
    Future
    VII. Containers
    16. Sequences
    list
    list::size() is O(n)
    vector
    Space Overhead Management
    17. Associative
    Insertion Hints
    bitset
    Size Variable
    Type String
    18. Interacting with C
    Containers vs. Arrays
    VIII. Iterators
    19. Predefined
    Iterators vs. Pointers
    One Past the End
    IX. Algorithms
    20. Mutating
    swap
    Specializations
    X. Numerics
    21. Complex
    complex Processing
    22. Generalized Operations
    23. Interacting with C
    Numerics vs. Arrays
    C99
    XI. Input and Output
    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
    More 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. 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. Free Software Needs Free Documentation
    D. GNU General Public License
    Preamble
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    Section 0
    Section 1
    Section 2
    Section 3
    Section 4
    Section 5
    Section 6
    Section 7
    Section 8
    Section 9
    Section 10
    NO WARRANTY Section 11
    Section 12
    How to Apply These Terms to Your New Programs
    E. GNU Free Documentation License
    API and Source Level Documentation
    Frequently Asked Questions
    diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index b30b0d04e07..9ddd31cf89e 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -18,18 +18,26 @@ Configure - Here are some of the non-obvious options to libstdc++'s configure. - Keep in mind that + When configuring libstdc++, you'll have to configure the entire + gccsrcdir directory. Consider using the + toplevel gcc configuration option + --enable-languages=c++, which saves time by only + building the C++ toolchain. + + + + Here are all of the configure options specific to libstdc++. Keep + in mind that they - all have opposite forms as well - (enable/disable and with/without). The defaults are for current - development sources, which may be different than those for - released versions. + all have opposite forms as well (enable/disable and + with/without). The defaults are for the current + development sources, which may be different than those + for released versions. The canonical way to find out the configure options that are available for a given set of libstdc++ sources is to go to the - source directory and then type: ./configure --help + source directory and then type:./configure --help. @@ -121,10 +129,10 @@ --enable-libstdcxx-allocator=OPTION Select a target-specific underlying std::allocator. The choices are 'new' to specify a wrapper for new, 'malloc' to - specify a wrapper for malloc, 'mt' for a fixed power of two allocator - (documented under extensions), + specify a wrapper for malloc, 'mt' for a fixed power of two allocator, 'pool' for the SGI pooled allocator or 'bitmap' for a bitmap allocator. - This option can change the library ABI. + This option can change the library ABI. See this page for more information on allocator + extensions @@ -153,7 +161,7 @@ --enable-libstdcxx-debug Build separate debug libraries in addition to what is normally built. By default, the debug libraries are compiled with - CXXFLAGS='-g3 -O0' + CXXFLAGS='-g3 -O0 -fno-inline' , are installed in ${libdir}/debug, and have the same names and versioning information as the non-debug libraries. This option is off by default. @@ -161,7 +169,7 @@ Note this make command, executed in the build directory, will do much the same thing, without the configuration difference and without building everything twice: - make CXXFLAGS='-g3 -O0' all + make CXXFLAGS='-g3 -O0 -fno-inline' all @@ -174,7 +182,7 @@ FLAGS is a quoted string of options, like - --enable-libstdcxx-debug-flags='-g3 -O1 -gdwarf-2' + --enable-libstdcxx-debug-flags='-g3 -O1 -fno-inline' --enable-cxx-flags=FLAGS @@ -258,7 +266,7 @@ --enable-concept-checks This turns on additional compile-time checks for instantiated library templates, in the form of specialized templates, - described here. They + described here. They can help users discover when they break the rules of the STL, before their programs run. @@ -335,4 +343,4 @@ - \ No newline at end of file + diff --git a/libstdc++-v3/doc/xml/manual/debug.xml b/libstdc++-v3/doc/xml/manual/debug.xml index b52a2469161..2ad542b97b1 100644 --- a/libstdc++-v3/doc/xml/manual/debug.xml +++ b/libstdc++-v3/doc/xml/manual/debug.xml @@ -31,21 +31,22 @@ The default optimizations and debug flags for a libstdc++ build are -g -O2. However, both debug and optimization flags can be varied to change debugging characteristics. For - instance, turning off all optimization via the -g -O0 - flag will disable inlining, so that stepping through all - functions, including inlined constructors and destructors, is - possible. In addition, - -fno-eliminate-unused-debug-types can be used when - additional debug information, such as nested class info, is - desired. + instance, turning off all optimization via the -g -O0 + -fno-inline flags will disable inlining and optimizations, + and add debugging information, so that stepping through all functions, + (including inlined constructors and destructors) is possible. In + addition, -fno-eliminate-unused-debug-types can be + used when additional debug information, such as nested class info, + is desired. Or, the debug format that the compiler and debugger use to communicate information about source constructs can be changed via - -gdwarf-2 or -gstabs flags: some - debugging formats permit more expressive type and scope information - to be shown in gdb. The default debug information for a particular + -gdwarf-2 or -gstabs flags: some debugging + formats permit more expressive type and scope information to be + shown in gdb. Expressiveness can be enhanced by flags like + -g3. The default debug information for a particular platform can be identified via the value set by the PREFERRED_DEBUGGING_TYPE macro in the gcc sources. @@ -78,21 +79,21 @@ debug build will persist, without having to specify CXXFLAGS, and the debug library will be installed in a separate directory tree, in (prefix)/lib/debug. For - more information, look at the configuration options document. + more information, look at the configuration section. A second approach is to use the configuration flags - make CXXFLAGS='-g3 -O0' all + make CXXFLAGS='-g3 -fno-inline -O0' all This quick and dirty approach is often sufficient for quick debugging tasks, when you cannot or don't want to recompile your - application to use the debug mode. + application to use the debug mode. @@ -115,8 +116,8 @@ thing of great importance to keep in mind when debugging C++ code that uses new and delete: there are different kinds of allocation schemes that can be used by - std::allocator . For implementation details, see the mt allocator documentation and + std::allocator . For implementation details, see the mt allocator documentation and look specifically for GLIBCXX_FORCE_NEW. @@ -197,7 +198,7 @@ Many options are available for gdb itself: please see + url="http://sources.redhat.com/gdb/current/onlinedocs/gdb_13.html#SEC125"> "GDB features for C++" in the gdb documentation. Also recommended: the other parts of this manual. diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index 1176fd65096..8cca6f39842 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -707,17 +707,56 @@ 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. + + + The general outline of commands is something like: + + + + get gcc sources + extract into gccsrcdir + mkdir gccbuilddir + cd gccbuilddir + gccsrcdir/configure --prefix=destdir --other-opts... + make + make check + make install + + + + Each step is described in more detail in the following sections. + + + + + + + - - - + + +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/xml/manual/build.xml b/libstdc++-v3/doc/xml/manual/prerequisites.xml similarity index 74% rename from libstdc++-v3/doc/xml/manual/build.xml rename to libstdc++-v3/doc/xml/manual/prerequisites.xml index d5d78291f43..20a04786533 100644 --- a/libstdc++-v3/doc/xml/manual/build.xml +++ b/libstdc++-v3/doc/xml/manual/prerequisites.xml @@ -1,5 +1,5 @@ - - + + @@ -7,28 +7,25 @@ ISO C++ - build + Prerequisites -Build +Prerequisites Because libstdc++ is part of GCC, the primary source for installation instructions is the GCC install page. - Additional data is given here only where it applies to libstdc++. + In particular, list of prerequisite software needed to build the library + + starts with those requirements. The same pages also list + the tools you will need if you wish to modify the source. - -Prerequisites - The list of software needed to build the library is kept with the - rest of the compiler, at - - http://gcc.gnu.org/install/prerequisites.html. The same page - also lists the tools you will need if you wish to modify the source. + Additional data is given here only where it applies to libstdc++. As of GCC 4.0.1 the minimum version of binutils required to build @@ -38,7 +35,7 @@ ftp://sources.redhat.com/pub/binutils. Older releases of libstdc++ do not require such a recent version, but to take full advantage of useful space-saving features and - bug-fixes you should use a recent binutils if possible. + bug-fixes you should use a recent binutils whenever possible. The configure process will automatically detect and use these features if the underlying support is present. @@ -93,6 +90,7 @@ se_NO.UTF-8 UTF-8 ta_IN UTF-8 zh_TW BIG5 + Failure to have the underlying "C" library locale information installed will mean that C++ named locales for the above regions will not work: because of this, the libstdc++ @@ -157,26 +155,4 @@ zh_TW BIG5 - - - -Make - If you have never done this before, you should read the basic - GCC Installation - Instructions first. Read all of them. - Twice. - - When building libstdc++ you'll have to configure - the entire gccsrcdir directory. The full list of libstdc++ - specific configuration options, not dependent on the specific compiler - release being used, can be found here. - - Consider possibly using --enable-languages=c++ to save time by only - building the C++ language parts. - - - - cd gccbuilddir - gccsrcdir/configure --prefix=destdir --other-opts... - - \ No newline at end of file + diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml index 58eaf980200..7072c81e609 100644 --- a/libstdc++-v3/doc/xml/manual/test.xml +++ b/libstdc++-v3/doc/xml/manual/test.xml @@ -12,13 +12,34 @@ testsuite + + performance + + + conformance + + + ABI + + + exception safety + Test + +The libstdc++ testsuite includes testing for standard conformance, +regressions, ABI, and performance. + + Organization + + +Directory Layout + The directory libsrcdir/testsuite contains the individual test cases organized in sub-directories corresponding to @@ -108,10 +129,10 @@ util Files for libtestc++, utilities and testing routines. All new tests should be written with the policy of one test case, one file in mind. + - - + Naming Conventions @@ -202,139 +223,15 @@ cat 27_io/objects/char/3_xin.in | a.out + - -Utilities - - - - The testsuite directory also contains some files that implement - functionality that is intended to make writing test cases easier, - or to avoid duplication, or to provide error checking in a way that - is consistent across platforms and test harnesses. A stand-alone - executable, called abi_check, and a static - library called libtestc++ are - constructed. Both of these items are not installed, and only used - during testing. - - - - These files include the following functionality: - - - - - - testsuite_abi.h, - testsuite_abi.cc, - testsuite_abi_check.cc - - - Creates the executable abi_check. - Used to check correctness of symbol versioning, visibility of - exported symbols, and compatibility on symbols in the shared - library, for hosts that support this feature. More information - can be found in the ABI documentation here - - - - - testsuite_allocator.h, - testsuite_allocator.cc - - - Contains specialized allocators that keep track of construction - and destruction. Also, support for overriding global new and - delete operators, including verification that new and delete - are called during execution, and that allocation over max_size - fails. - - - - - testsuite_character.h - - - Contains std::char_traits and - std::codecvt specializations for a user-defined - POD. - - - - - testsuite_hooks.h, - testsuite_hooks.cc - - - A large number of utilities, including: - - - VERIFY - set_memory_limits - verify_demangle - run_tests_wrapped_locale - run_tests_wrapped_env - try_named_locale - try_mkfifo - func_callback - counter - copy_tracker - copy_constructor - assignment_operator - destructor - - pod_char, pod_int and associated char_traits specializations - - - - - - testsuite_io.h - - - Error, exception, and constraint checking for - std::streambuf, std::basic_stringbuf, std::basic_filebuf. - - - - - testsuite_iterators.h - - - Wrappers for various iterators. - - - - - testsuite_performance.h - - - A number of class abstractions for performance counters, and - reporting functions including: - - - time_counter - resource_counter - report_performance - - - - - Running the Testsuite - Basic Results - - There are several options for running tests, including testing - the regression tests, testing a subset of the regression tests, - testing the performance tests, testing just compilation, testing - installed tools, etc. In addition, there is a special rule for - checking the exported symbols of the shared library. - + Basic You can check the status of the build without installing it @@ -361,7 +258,7 @@ cat 27_io/objects/char/3_xin.in | a.out Archives of test results for various versions and platforms are available on the GCC website in the build + url="http://gcc.gnu.org/gcc-4.3/buildstat.html">build status section of each individual release, and are also archived on a daily basis on the gcc-testresults @@ -370,8 +267,15 @@ cat 27_io/objects/char/3_xin.in | a.out - - Options + + Variations + + There are several options for running tests, including testing + the regression tests, testing a subset of the regression tests, + testing the performance tests, testing just compilation, testing + installed tools, etc. In addition, there is a special rule for + checking the exported symbols of the shared library. + To debug the dejagnu test harness during runs, try invoking with a specific argument to the variable RUNTESTFLAGS, as below. @@ -567,7 +471,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite - Test Permutations + Permutations To run the libstdc++ test suite under the debug mode, edit @@ -582,15 +486,23 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite library or the test suite. + + The parallel + mode can be tested in much the same manner, substituting + -D_GLIBCXX_PARALLEL for + -D_GLIBCXX_DEBUG in the previous paragraph. + + Or, just run the testsuites with CXXFLAGS - set to -D_GLIBCXX_DEBUG. + set to -D_GLIBCXX_DEBUG or + -D_GLIBCXX_PARALLEL. -New Test Cases +Writing a new test case The first step in making a new test case is to choose the correct @@ -718,14 +630,18 @@ up in the normal.exp file. More examples can be found in the libstdc++-v3/testsuite/*/*.cc files. - - - -Test Harness Details + + +Test Harness and Utilities + + +Dejagnu Harness Details - Underlying details of testing are abstracted via the GNU Dejagnu package. + Underlying details of testing for conformance and regressions are + abstracted via the GNU Dejagnu package. This is similar to the + rest of GCC. @@ -764,58 +680,125 @@ board" information unique to this library. This is currently unused and sets only default variables. - + - -Future + +Utilities + + The testsuite directory also contains some files that implement + functionality that is intended to make writing test cases easier, + or to avoid duplication, or to provide error checking in a way that + is consistent across platforms and test harnesses. A stand-alone + executable, called abi_check, and a static + library called libtestc++ are + constructed. Both of these items are not installed, and only used + during testing. + + + These files include the following functionality: + - -Shared runs need to be implemented, for targets that support shared libraries. - - - -Diffing of expected output to standard streams needs to be finished off. - - - -The V3 testing framework supports, or will eventually support, -additional keywords for the purpose of easing the job of writing -test cases. All V3-keywords are of the form @xxx@. -Currently plans for supported keywords include: - - - - @require@ <files> - - - The existence of <files> is essential for the test to complete - successfully. For example, a test case foo.C using bar.baz as - input file could say - - - // @require@ bar.baz - - The special variable % stands for the rootname, e.g. the - file-name without its `.C' extension. Example of use (taken - verbatim from 27_io/filebuf.cc) - - - // @require@ %-*.tst %-*.txt - - @diff@ <first-list> <second-list> - - - After the test case compiles and ran successfully, diff - <first-list> against <second-list>, these lists should - have the same length. The test fails if diff returns non-zero a - pair of files. - - - + + + + testsuite_abi.h, + testsuite_abi.cc, + testsuite_abi_check.cc + + + Creates the executable abi_check. + Used to check correctness of symbol versioning, visibility of + exported symbols, and compatibility on symbols in the shared + library, for hosts that support this feature. More information + can be found in the ABI documentation here + + + + + testsuite_allocator.h, + testsuite_allocator.cc + + + Contains specialized allocators that keep track of construction + and destruction. Also, support for overriding global new and + delete operators, including verification that new and delete + are called during execution, and that allocation over max_size + fails. + + + + + testsuite_character.h + + + Contains std::char_traits and + std::codecvt specializations for a user-defined + POD. + + + + + testsuite_hooks.h, + testsuite_hooks.cc + + + A large number of utilities, including: + + + VERIFY + set_memory_limits + verify_demangle + run_tests_wrapped_locale + run_tests_wrapped_env + try_named_locale + try_mkfifo + func_callback + counter + copy_tracker + copy_constructor + assignment_operator + destructor + + pod_char, pod_int and associated char_traits specializations + + + + + + testsuite_io.h + + + Error, exception, and constraint checking for + std::streambuf, std::basic_stringbuf, std::basic_filebuf. + + + + + testsuite_iterators.h + + + Wrappers for various iterators. + + + + + testsuite_performance.h + + + A number of class abstractions for performance counters, and + reporting functions including: + + + time_counter + resource_counter + report_performance + + + + -