diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d330b936e5fe..75a3e11a8e8f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,7 @@ +2012-11-03 Jonathan Wakely + + * doc/html/*: Regenerate. + 2012-11-02 Gerald Pfeifer * doc/xml/manual/configure.xml: Adjust GNU libc link. diff --git a/libstdc++-v3/doc/html/api.html b/libstdc++-v3/doc/html/api.html index 4bb600a359ee..56db3471d53f 100644 --- a/libstdc++-v3/doc/html/api.html +++ b/libstdc++-v3/doc/html/api.html @@ -7,7 +7,7 @@ FSF -

+


diff --git a/libstdc++-v3/doc/html/faq.html b/libstdc++-v3/doc/html/faq.html index be3a563dbd2e..ed35ee6cd8ba 100644 --- a/libstdc++-v3/doc/html/faq.html +++ b/libstdc++-v3/doc/html/faq.html @@ -4,7 +4,7 @@ 2008, 2010 FSF -


1.1. +


1.1. What is libstdc++?
1.2. Why should I use libstdc++? diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index 4dffdb867cb1..4ac0e0ef35f9 100644 --- a/libstdc++-v3/doc/html/index.html +++ b/libstdc++-v3/doc/html/index.html @@ -35,13 +35,13 @@
Exceptions
API Reference
Adding Data to exception
Concept Checking
6. Utilities -
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. +
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. Strings
String Classes
Simple Transformations
Case Sensitivity
Arbitrary Character Types
Tokenizing
Shrink to Fit
CString (MFC)
8. Localization -
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. +
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. Containers
Sequences
list
list::size() is O(n)
vector
Space Overhead Management
Associative
Insertion Hints
bitset
Size Variable
Type String
Interacting with C
Containers vs. Arrays
10. diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index d2457146fc2e..48446db267c6 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -494,39 +494,39 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. C++ ABI Summary - .

+ .

+ .

+ .

+ .

+ . Ulrich Drepper.

+ .

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

+ . Benjamin Kosnik.

Versioning With Namespaces . ISO C++ J16/06-0083 - . Benjamin Kosnik.

+ . Benjamin Kosnik.

Chapter 11.  Algorithms - +

The neatest accomplishment of the algorithms section is that all the work is done via iterators, not containers directly. This means two diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 6fbef3ea3ee1..250ba6ee0903 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -78,11 +78,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.6. 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.6. 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.7. 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.7. Extension Allocators Continued

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

Debug mode first appears.

Precompiled header support PCH support. diff --git a/libstdc++-v3/doc/html/manual/appendix_contributing.html b/libstdc++-v3/doc/html/manual/appendix_contributing.html index 3517682be4ed..1db71765521b 100644 --- a/libstdc++-v3/doc/html/manual/appendix_contributing.html +++ b/libstdc++-v3/doc/html/manual/appendix_contributing.html @@ -7,7 +7,7 @@ Appendices  Next


Contributing - +

The GNU C++ Library follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given diff --git a/libstdc++-v3/doc/html/manual/appendix_free.html b/libstdc++-v3/doc/html/manual/appendix_free.html index dc7678e81de7..aaaa8062a715 100644 --- a/libstdc++-v3/doc/html/manual/appendix_free.html +++ b/libstdc++-v3/doc/html/manual/appendix_free.html @@ -7,7 +7,7 @@ Appendices  Next


Free Software Needs Free Documentation - +

The biggest deficiency in free operating systems is not in the software--it is the lack of good free manuals that we can include in diff --git a/libstdc++-v3/doc/html/manual/appendix_gpl.html b/libstdc++-v3/doc/html/manual/appendix_gpl.html index 01b355a6d48f..3ea6fdc60972 100644 --- a/libstdc++-v3/doc/html/manual/appendix_gpl.html +++ b/libstdc++-v3/doc/html/manual/appendix_gpl.html @@ -78,7 +78,7 @@

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

+

TERMS AND CONDITIONS

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

+

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html index 0a87ee8547fc..e14a7c480e06 100644 --- a/libstdc++-v3/doc/html/manual/appendix_porting.html +++ b/libstdc++-v3/doc/html/manual/appendix_porting.html @@ -7,7 +7,7 @@ Appendices  Next

Porting and Maintenance - +

What Comes from Where

Figure B.1. Configure and Build File Dependencies

Dependency Graph for Configure and Build Files

+

What Comes from Where

Figure B.1. Configure and Build File Dependencies

Dependency Graph for Configure and Build Files

Regenerate all generated files by using the command autoreconf at the top level of the libstdc++ source directory. diff --git a/libstdc++-v3/doc/html/manual/atomics.html b/libstdc++-v3/doc/html/manual/atomics.html index 748fae127ba3..93483c30e71c 100644 --- a/libstdc++-v3/doc/html/manual/atomics.html +++ b/libstdc++-v3/doc/html/manual/atomics.html @@ -7,7 +7,7 @@ Standard Contents  Next


Chapter 14.  Atomics - +

Table of Contents

API Reference

Facilities for atomic operations.

API Reference

diff --git a/libstdc++-v3/doc/html/manual/backwards.html b/libstdc++-v3/doc/html/manual/backwards.html index 20022c54fbe9..5cef82c015ae 100644 --- a/libstdc++-v3/doc/html/manual/backwards.html +++ b/libstdc++-v3/doc/html/manual/backwards.html @@ -941,15 +941,15 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [ This is a change in behavior from older versions. Now, most iterator_type typedefs in container classes are POD objects, not value_type pointers. -

Bibliography

+

Bibliography

Migrating to GCC 4.1 - . Dan Kegel.

+ . Dan Kegel.

+ . Martin Michlmayr.

Migration guide for GCC-3.2 diff --git a/libstdc++-v3/doc/html/manual/bk01pt02.html b/libstdc++-v3/doc/html/manual/bk01pt02.html index d312f840070e..54309d482e68 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt02.html @@ -13,13 +13,13 @@

Exceptions
API Reference
Adding Data to exception
Concept Checking
6. Utilities -
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. +
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. Strings
String Classes
Simple Transformations
Case Sensitivity
Arbitrary Character Types
Tokenizing
Shrink to Fit
CString (MFC)
8. Localization -
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. +
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. Containers
Sequences
list
list::size() is O(n)
vector
Space Overhead Management
Associative
Insertion Hints
bitset
Size Variable
Type String
Interacting with C
Containers vs. Arrays
10. diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html b/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html index 7e8b87e4799a..62990b26dce8 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html @@ -19,6 +19,6 @@ mode or with debug mode. The following table provides the names and headers of the debugging containers: -

Table 17.1. Debugging Containers

ContainerHeaderDebug containerDebug header
std::bitsetbitset__gnu_debug::bitset<debug/bitset>
std::dequedeque__gnu_debug::deque<debug/deque>
std::listlist__gnu_debug::list<debug/list>
std::mapmap__gnu_debug::map<debug/map>
std::multimapmap__gnu_debug::multimap<debug/map>
std::multisetset__gnu_debug::multiset<debug/set>
std::setset__gnu_debug::set<debug/set>
std::stringstring__gnu_debug::string<debug/string>
std::wstringstring__gnu_debug::wstring<debug/string>
std::basic_stringstring__gnu_debug::basic_string<debug/string>
std::vectorvector__gnu_debug::vector<debug/vector>

In addition, when compiling in C++11 mode, these additional +

Table 17.1. Debugging Containers

ContainerHeaderDebug containerDebug header
std::bitsetbitset__gnu_debug::bitset<debug/bitset>
std::dequedeque__gnu_debug::deque<debug/deque>
std::listlist__gnu_debug::list<debug/list>
std::mapmap__gnu_debug::map<debug/map>
std::multimapmap__gnu_debug::multimap<debug/map>
std::multisetset__gnu_debug::multiset<debug/set>
std::setset__gnu_debug::set<debug/set>
std::stringstring__gnu_debug::string<debug/string>
std::wstringstring__gnu_debug::wstring<debug/string>
std::basic_stringstring__gnu_debug::basic_string<debug/string>
std::vectorvector__gnu_debug::vector<debug/vector>

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

Table 17.2. Debugging Containers C++11

ContainerHeaderDebug containerDebug header
std::unordered_mapunordered_map__gnu_debug::unordered_map<debug/unordered_map>
std::unordered_multimapunordered_map__gnu_debug::unordered_multimap<debug/unordered_map>
std::unordered_setunordered_set__gnu_debug::unordered_set<debug/unordered_set>
std::unordered_multisetunordered_set__gnu_debug::unordered_multiset<debug/unordered_set>

+

Table 17.2. Debugging Containers C++11

ContainerHeaderDebug containerDebug header
std::unordered_mapunordered_map__gnu_debug::unordered_map<debug/unordered_map>
std::unordered_multimapunordered_map__gnu_debug::unordered_multimap<debug/unordered_map>
std::unordered_setunordered_set__gnu_debug::unordered_set<debug/unordered_set>
std::unordered_multisetunordered_set__gnu_debug::unordered_multiset<debug/unordered_set>

diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html b/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html index d1414b3833ba..34c54edc70b1 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.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 18.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 18.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/bk01pt03ch19s02.html b/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html index 2100fc0b4593..32a456f9a6b1 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html @@ -1,7 +1,7 @@ Design

Design

-

Table 19.1. Profile Code Location

Code LocationUse
libstdc++-v3/include/std/*Preprocessor code to redirect to profile extension headers.
libstdc++-v3/include/profile/*Profile extension public headers (map, vector, ...).
libstdc++-v3/include/profile/impl/*Profile extension internals. Implementation files are +

Table 19.1. Profile Code Location

Code LocationUse
libstdc++-v3/include/std/*Preprocessor code to redirect to profile extension headers.
libstdc++-v3/include/profile/*Profile extension public headers (map, vector, ...).
libstdc++-v3/include/profile/impl/*Profile extension internals. Implementation files are only included from impl/profiler.h, which is the only file included from the public headers.

Wrapper Model

diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html b/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html index 9dc6ab9ef5a1..a456facf27e3 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html @@ -18,7 +18,7 @@ A high accuracy means that the diagnostic is unlikely to be wrong. These grades are not perfect. They are just meant to guide users with specific needs or time budgets. -

Table 19.2. Profile Diagnostics

GroupFlagBenefitCostFreq.Implemented 
+

Table 19.2. Profile Diagnostics

GroupFlagBenefitCostFreq.Implemented 
CONTAINERS HASHTABLE_TOO_SMALL101 10yes
  HASHTABLE_TOO_LARGE51 10yes
  diff --git a/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html b/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html index 5ff81e6e0652..be63b2d9fb3b 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html @@ -76,7 +76,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 21.1. Bitmap Allocator Memory Map

268042949672954294967295Data -> Space for 64 ints

+

Table 21.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/bk01pt03pr01.html b/libstdc++-v3/doc/html/manual/bk01pt03pr01.html index ac18c2dc0440..227a17b766ae 100644 --- a/libstdc++-v3/doc/html/manual/bk01pt03pr01.html +++ b/libstdc++-v3/doc/html/manual/bk01pt03pr01.html @@ -3,7 +3,7 @@

+

 Next

Here we will make an attempt at describing the non-Standard extensions to the library. Some of these are from older versions of standard library components, namely SGI's STL, and some of these are diff --git a/libstdc++-v3/doc/html/manual/concurrency.html b/libstdc++-v3/doc/html/manual/concurrency.html index 94d3709e16dc..f4ee067c1f34 100644 --- a/libstdc++-v3/doc/html/manual/concurrency.html +++ b/libstdc++-v3/doc/html/manual/concurrency.html @@ -7,7 +7,7 @@ Standard Contents

 Next

Chapter 15.  Concurrency - +

Table of Contents

API Reference

Facilities for concurrent operation, and control thereof.

API Reference

diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html index 8dc3dfdecdf0..e3419612aed7 100644 --- a/libstdc++-v3/doc/html/manual/configure.html +++ b/libstdc++-v3/doc/html/manual/configure.html @@ -17,7 +17,7 @@ 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.

--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" @@ -53,14 +53,19 @@ 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. -

If not explicitly specified, the configure proccess tries + library (langinfo/iconv/gettext) (from glibc, the GNU C + library), 'generic' to use a generic "C" abstraction which consists + of "C" locale info, 'newlib' to specify the Newlib C library model + which only differs from the 'generic' model in the handling of + ctype, or 'darwin' which omits the wchar_t specializations + needed by the 'generic' model. +

If not explicitly specified, the configure process tries to guess the most suitable package from the choices above. The default is 'generic'. On glibc-based systems of sufficient - vintage (2.3 and newer), 'gnu' is automatically selected. This option - can change the library ABI. + vintage (2.3 and newer), 'gnu' is automatically selected. On newlib-based + systems ('--with_newlib=yes') and OpenBSD, 'newlib' is + automatically selected. On Mac OS X 'darwin' is automatically selected. + This option can change the library ABI.

--enable-libstdcxx-allocator

This is an abbreviated form of '--enable-libstdcxx-allocator=auto' (described next). @@ -94,9 +99,9 @@ and of the nanosleep and sched_yield functions, used in the implementation of [thread.thread.this] of the 2011 ISO C++ standard. The choice OPTION=yes checks for the availability of the facilities - in libc and libposix4. In case of need the latter is also linked + in libc and libposix4. In case it's needed 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 + (and, if needed, 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. @@ -137,7 +142,7 @@ -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 +

--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 @@ -148,13 +153,13 @@ 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 +

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

--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: @@ -204,7 +209,7 @@

--enable-extern-template[default]

Use extern template to pre-instantiate all required specializations for certain types defined in the standard libraries. These types include string and dependents like - char_traits, the templateized io classes, + char_traits, the templatized IO classes, allocator, and others. Disabling means that implicit template generation will be used when compiling these types. By diff --git a/libstdc++-v3/doc/html/manual/containers.html b/libstdc++-v3/doc/html/manual/containers.html index 6ce7b3aea36f..f6c5e634208b 100644 --- a/libstdc++-v3/doc/html/manual/containers.html +++ b/libstdc++-v3/doc/html/manual/containers.html @@ -7,7 +7,7 @@ Standard Contents

 Next

Chapter 9.  Containers - +

Sequences

list

list::size() is O(n)

Yes it is, and that's okay. This is a decision that we preserved when we imported SGI's STL implementation. The following is diff --git a/libstdc++-v3/doc/html/manual/debug.html b/libstdc++-v3/doc/html/manual/debug.html index fc59e8d75d91..bebede12443b 100644 --- a/libstdc++-v3/doc/html/manual/debug.html +++ b/libstdc++-v3/doc/html/manual/debug.html @@ -26,7 +26,7 @@ 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. + PREFERRED_DEBUGGING_TYPE macro in the GCC sources.

Many other options are available: please see "Options for Debugging Your Program" in Using the GNU Compiler @@ -174,7 +174,7 @@ Refer to the documentation of each particular tool for details.

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/diagnostics.html b/libstdc++-v3/doc/html/manual/diagnostics.html index d14c9f97efdd..d55beb7fc7f9 100644 --- a/libstdc++-v3/doc/html/manual/diagnostics.html +++ b/libstdc++-v3/doc/html/manual/diagnostics.html @@ -7,7 +7,7 @@ Standard Contents  Next


Chapter 5.  Diagnostics - +

Exceptions

API Reference

All exception objects are defined in one of the standard header files: exception, diff --git a/libstdc++-v3/doc/html/manual/documentation_hacking.html b/libstdc++-v3/doc/html/manual/documentation_hacking.html index 0a4d5e18e1b1..95ae5255c183 100644 --- a/libstdc++-v3/doc/html/manual/documentation_hacking.html +++ b/libstdc++-v3/doc/html/manual/documentation_hacking.html @@ -117,7 +117,7 @@ supported, and are always aliased to dummy rules. These unsupported formats are: info, ps, and dvi. -

Doxygen

Prerequisites

Table B.1. Doxygen Prerequisites

ToolVersionRequired By
coreutils8.5all
bash4.1all
doxygen1.7.6.1all
graphviz2.26graphical hierarchies
pdflatex2007-59pdf output

+

Doxygen

Prerequisites

Table B.1. Doxygen Prerequisites

ToolVersionRequired By
coreutils8.5all
bash4.1all
doxygen1.7.6.1all
graphviz2.26graphical hierarchies
pdflatex2007-59pdf output

Prerequisite tools are Bash 2.0 or later, Doxygen, and the GNU @@ -271,7 +271,7 @@ writing Doxygen comments. Single and double quotes, and separators in filenames are two common trouble spots. When in doubt, consult the following table. -

Table B.2. HTML to Doxygen Markup Comparison

HTMLDoxygen
\\\
"\"
'\'
<i>@a word
<b>@b word
<code>@c word
<em>@a word
<em><em>two words or more</em>

Docbook

Prerequisites

Table B.3. Docbook Prerequisites

ToolVersionRequired By
docbook5-style-xsl1.76.1all
xsltproc1.1.26all
xmllint2.7.7validation
dblatex0.3pdf output
pdflatex2007-59pdf output
docbook2X0.8.8info output
epub3 stylesheetsb3epub output

+

Table B.2. HTML to Doxygen Markup Comparison

HTMLDoxygen
\\\
"\"
'\'
<i>@a word
<b>@b word
<code>@c word
<em>@a word
<em><em>two words or more</em>

Docbook

Prerequisites

Table B.3. Docbook Prerequisites

ToolVersionRequired By
docbook5-style-xsl1.76.1all
xsltproc1.1.26all
xmllint2.7.7validation
dblatex0.3pdf output
pdflatex2007-59pdf output
docbook2X0.8.8info output
epub3 stylesheetsb3epub output

Editing the DocBook sources requires an XML editor. Many exist: some notable options include emacs, Kate, @@ -429,11 +429,11 @@ make XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwal online. An incomplete reference for HTML to Docbook conversion is detailed in the table below. -

Table B.4. HTML to Docbook XML Markup Comparison

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

Table B.4. HTML to Docbook XML Markup Comparison

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

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

Table B.5. Docbook XML Element Use

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

Table B.5. Docbook XML Element Use

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

<function>clear()</function>

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

<type><type>long long</type>
<varname><varname>fs</varname>
<literal> diff --git a/libstdc++-v3/doc/html/manual/extensions.html b/libstdc++-v3/doc/html/manual/extensions.html index ea00d9470b9c..78f9e7d967f8 100644 --- a/libstdc++-v3/doc/html/manual/extensions.html +++ b/libstdc++-v3/doc/html/manual/extensions.html @@ -5,7 +5,7 @@
Prev The GNU C++ Library Manual Next

Part III.  Extensions - +

Table of Contents

16. Compile Time Checks
17. Debug Mode
Intro
Semantics
Using
Using the Debug Mode
Using a Specific Debug Container
Design
Goals
Methods
The Wrapper Model
Safe Iterators
Safe Sequences (Containers)
Precondition Checking
Release- and debug-mode coexistence
Compile-time coexistence of release- and debug-mode components
Link- and run-time coexistence of release- and debug-mode components
Alternatives for Coexistence
Other Implementations
18. Parallel Mode
Intro
Semantics
Using
Prerequisite Compiler Flags
Using Parallel Mode
Using Specific Parallel Components
Design
Interface Basics
Configuration and Tuning
Setting up the OpenMP Environment
Compile Time Switches
Run Time Settings and Defaults
Implementation Namespaces
Testing
Bibliography
19. Profile Mode
Intro
Using the Profile Mode
Tuning the Profile Mode
Design
Wrapper Model
Instrumentation
Run Time Behavior
Analysis and Diagnostics
Cost Model
Reports
Testing
Extensions for Custom Containers
Empirical Cost Model
Implementation Issues
Stack Traces
Symbolization of Instruction Addresses
Concurrency
Using the Standard Library in the Instrumentation Implementation
Malloc Hooks
Construction and Destruction of Global Objects
Developer Information
Big Picture
How To Add A Diagnostic
Diagnostics
Diagnostic Template
Containers
Hashtable Too Small
Hashtable Too Large
Inefficient Hash
Vector Too Small
Vector Too Large
Vector to Hashtable
Hashtable to Vector
Vector to List
List to Vector
List to Forward List (Slist)
Ordered to Unordered Associative Container
Algorithms
Sort Algorithm Performance
Data Locality
Need Software Prefetch
Linked Structure Locality
Multithreaded Data Access
Data Dependence Violations at Container Level
False Sharing
Statistics
Bibliography
20. The mt_allocator
Intro
Design Issues
Overview
Implementation
Tunable Parameters
Initialization
Deallocation Notes
Single Thread Example
Multiple Thread Example
21. The bitmap_allocator
Design
Implementation
Free List Store
Super Block
Super Block Data Layout
Maximum Wasted Percentage
allocate
deallocate
Questions
1
2
3
Locality
Overhead and Grow Policy
22. Policy-Based Data Structures
Intro
Performance Issues
Associative
Priority Que
Goals
Associative
Policy Choices
Underlying Data Structures
Iterators
Functional
Priority Queues
Policy Choices
Underlying Data Structures
Binary Heaps
Using
Prerequisites
Organization
Tutorial
Basic Use
Configuring via Template Parameters diff --git a/libstdc++-v3/doc/html/manual/facets.html b/libstdc++-v3/doc/html/manual/facets.html index 7eae8945b074..45242d2b57df 100644 --- a/libstdc++-v3/doc/html/manual/facets.html +++ b/libstdc++-v3/doc/html/manual/facets.html @@ -3,7 +3,7 @@ Facets

Facets

ctype

Implementation

Specializations

+

 Next

Facets

ctype

Implementation

Specializations

For the required specialization codecvt<wchar_t, char, mbstate_t> , conversions are made between the internal character set (always UCS4 on GNU/Linux) and whatever the currently selected locale for the @@ -50,24 +50,24 @@ 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.

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

    + The 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 @@ -410,42 +410,42 @@ 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 - .

    + .

    Correspondence - . Ulrich Drepper. Copyright © 2002 .

    + . Ulrich Drepper. Copyright © 2002 .

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

    + . Copyright © 1998 ISO.

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

    + System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) . Copyright © 2008 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.

    + . Clive Feather. Extended Character Sets.

    The Unicode HOWTO - . Bruno Haible.

    + . Bruno Haible.

    UTF-8 and Unicode FAQ for Unix/Linux @@ -691,40 +691,40 @@ 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.

    + System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) . Copyright © 2008 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 - .

    + .

    API Specifications, Java Platform . 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/index.html b/libstdc++-v3/doc/html/manual/index.html index 4edc5498b7c7..d89469e7c206 100644 --- a/libstdc++-v3/doc/html/manual/index.html +++ b/libstdc++-v3/doc/html/manual/index.html @@ -16,13 +16,13 @@

    Exceptions
    API Reference
    Adding Data to exception
    Concept Checking
    6. Utilities -
    Functors
    Pairs
    Memory
    Allocators
    Requirements
    Design Issues
    Implementation
    Interface Design
    Selecting Default Allocation Policy
    Disabling Memory Caching
    Using a Specific Allocator
    Custom Allocators
    Extension Allocators
    auto_ptr
    Limitations
    Use in Containers
    shared_ptr
    Requirements
    Design Issues
    Implementation
    Class Hierarchy
    Thread Safety
    Selecting Lock Policy
    Related functions and classes
    Use
    Examples
    Unresolved Issues
    Acknowledgments
    Traits
    7. +
    Functors
    Pairs
    Memory
    Allocators
    Requirements
    Design Issues
    Implementation
    Interface Design
    Selecting Default Allocation Policy
    Disabling Memory Caching
    Using a Specific Allocator
    Custom Allocators
    Extension Allocators
    auto_ptr
    Limitations
    Use in Containers
    shared_ptr
    Requirements
    Design Issues
    Implementation
    Class Hierarchy
    Thread Safety
    Selecting Lock Policy
    Related functions and classes
    Use
    Examples
    Unresolved Issues
    Acknowledgments
    Traits
    7. Strings
    String Classes
    Simple Transformations
    Case Sensitivity
    Arbitrary Character Types
    Tokenizing
    Shrink to Fit
    CString (MFC)
    8. Localization -
    Locales
    locale
    Requirements
    Design
    Implementation
    Interacting with "C" locales
    Future
    Facets
    ctype
    Implementation
    Specializations
    Future
    codecvt
    Requirements
    Design
    wchar_t Size
    Support for Unicode
    Other Issues
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Models
    The GNU Model
    Use
    Future
    9. +
    Locales
    locale
    Requirements
    Design
    Implementation
    Interacting with "C" locales
    Future
    Facets
    ctype
    Implementation
    Specializations
    Future
    codecvt
    Requirements
    Design
    wchar_t Size
    Support for Unicode
    Other Issues
    Implementation
    Use
    Future
    messages
    Requirements
    Design
    Implementation
    Models
    The GNU Model
    Use
    Future
    9. Containers
    Sequences
    list
    list::size() is O(n)
    vector
    Space Overhead Management
    Associative
    Insertion Hints
    bitset
    Size Variable
    Type String
    Interacting with C
    Containers vs. Arrays
    10. @@ -146,19 +146,19 @@ Support for C++11 dialect.
    D. GNU General Public License version 3 -
    E. GNU Free Documentation License
    diff --git a/libstdc++-v3/doc/html/manual/io.html b/libstdc++-v3/doc/html/manual/io.html index 2ebe126fb0c7..b9c22dc63784 100644 --- a/libstdc++-v3/doc/html/manual/io.html +++ b/libstdc++-v3/doc/html/manual/io.html @@ -7,7 +7,7 @@ Standard Contents
     Next

    Chapter 13.  Input and Output - +

    Iostream Objects

    To minimize the time you have to wait on the compiler, it's good to only include the headers you really need. Many people simply include <iostream> when they don't need to -- and that can penalize diff --git a/libstdc++-v3/doc/html/manual/iterators.html b/libstdc++-v3/doc/html/manual/iterators.html index 23a899248f74..d535e4ba77ae 100644 --- a/libstdc++-v3/doc/html/manual/iterators.html +++ b/libstdc++-v3/doc/html/manual/iterators.html @@ -7,7 +7,7 @@ Standard Contents  Next


    Chapter 10.  Iterators - +

    Predefined

    Iterators vs. Pointers

    The following FAQ entry points out that diff --git a/libstdc++-v3/doc/html/manual/localization.html b/libstdc++-v3/doc/html/manual/localization.html index 1e85be7701f6..9b85445d9c10 100644 --- a/libstdc++-v3/doc/html/manual/localization.html +++ b/libstdc++-v3/doc/html/manual/localization.html @@ -7,8 +7,8 @@ Standard Contents  Next


    Locales

    locale

    Describes the basic locale object, including nested classes id, facet, and the reference-counted implementation object, class _Impl. @@ -403,29 +403,29 @@ global locale" (emphasis Paolo), that is: What should non-required facet instantiations do? If the generic implementation is provided, then how to end-users provide specializations? -

    Bibliography

    +

    Bibliography

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

    + .

    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 7 (IEEE Std. 1003.1-2008) . Copyright © 2008 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/memory.html b/libstdc++-v3/doc/html/manual/memory.html index d906c212b209..7a726ec7cdcd 100644 --- a/libstdc++-v3/doc/html/manual/memory.html +++ b/libstdc++-v3/doc/html/manual/memory.html @@ -93,7 +93,7 @@ or loading and unloading shared objects in memory. As such, using caching allocators on systems that do not support abi::__cxa_atexit is not recommended. -

    Implementation

    Interface Design

    +

    Implementation

    Interface Design

    The only allocator interface that is supported is the standard C++ interface. As such, all STL containers have been adjusted, and all external allocators have @@ -106,7 +106,7 @@

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

    Selecting Default Allocation Policy

    +

    Selecting Default Allocation Policy

    It's difficult to pick an allocation strategy that will provide maximum utility, without excessively penalizing some behavior. In fact, it's difficult just deciding which typical actions to measure @@ -143,7 +143,7 @@ The current default choice for allocator is __gnu_cxx::new_allocator. -

    Disabling Memory Caching

    +

    Disabling Memory Caching

    In use, allocator may allocate and deallocate using implementation-specific strategies and heuristics. Because of this, a given call to an allocator object's @@ -310,33 +310,33 @@ of the used and unused memory locations. It has its own chapter in the documentation. -

    Bibliography

    +

    Bibliography

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

    + 20.4 Memory.

    The Standard Librarian: What Are Allocators Good For? . Matt Austern. C/C++ Users Journal - .

    + The Hoard Memory Allocator - . Emery Berger.

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

    + . Emery Berger. Ben Zorn. Kathryn McKinley. Copyright © 2002 OOPSLA.

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

    The C++ Programming Language. Bjarne Stroustrup. Copyright © 2000 . 19.4 Allocators. + .

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

    Yalloc: A Recycling C++ Allocator. Felix Yen.

    auto_ptr

    Limitations

    Explaining all of the fun and delicious things that can + .

    Yalloc: A Recycling C++ Allocator. Felix Yen.

    auto_ptr

    Limitations

    Explaining all of the fun and delicious things that can happen with misuse of the auto_ptr class template (called AP here) would take some time. Suffice it to say that the use of AP @@ -446,7 +446,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 @@ -493,7 +493,7 @@ C++11-only features are: rvalue-ref/move support, allocator support, aliasing constructor, make_shared & allocate_shared. Additionally, the constructors taking auto_ptr parameters are deprecated in C++11 mode. -

    Thread Safety

    +

    Thread Safety

    The Thread Safety section of the Boost shared_ptr documentation says "shared_ptr @@ -538,7 +538,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 @@ -579,7 +579,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. -

    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 @@ -612,13 +612,13 @@ 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, testsuite/20_util/shared_ptr and testsuite/20_util/weak_ptr. -

    Unresolved Issues

    +

    Unresolved Issues

    The shared_ptr atomic access clause in the C++11 standard is not implemented in GCC.

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

    + .

    + .

    + .

    Boost C++ Libraries documentation, shared_ptr diff --git a/libstdc++-v3/doc/html/manual/numerics.html b/libstdc++-v3/doc/html/manual/numerics.html index e0d51a621e1d..0a51776df4d5 100644 --- a/libstdc++-v3/doc/html/manual/numerics.html +++ b/libstdc++-v3/doc/html/manual/numerics.html @@ -7,7 +7,7 @@ Standard Contents  Next


    Chapter 12.  Numerics - +

    Complex

    complex Processing

    Using complex<> becomes even more comple- er, sorry, diff --git a/libstdc++-v3/doc/html/manual/parallel_mode.html b/libstdc++-v3/doc/html/manual/parallel_mode.html index 9f432afc13ce..c9f9d905b6fe 100644 --- a/libstdc++-v3/doc/html/manual/parallel_mode.html +++ b/libstdc++-v3/doc/html/manual/parallel_mode.html @@ -13,11 +13,11 @@ explicit source declaration or by compiling existing sources with a specific compiler flag.

    Intro

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

    • std::accumulate

    • std::adjacent_difference

    • std::inner_product

    • std::partial_sum

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

    • std::adjacent_find

    • std::count

    • std::count_if

    • std::equal

    • std::find

    • std::find_if

    • std::find_first_of

    • std::for_each

    • std::generate

    • std::generate_n

    • std::lexicographical_compare

    • std::mismatch

    • std::search

    • std::search_n

    • std::transform

    • std::replace

    • std::replace_if

    • std::max_element

    • std::merge

    • std::min_element

    • std::nth_element

    • std::partial_sort

    • std::partition

    • std::random_shuffle

    • std::set_union

    • std::set_intersection

    • std::set_symmetric_difference

    • std::set_difference

    • std::sort

    • std::stable_sort

    • std::unique_copy

    Bibliography

    +algorithm are included in the parallel mode:

    • std::adjacent_find

    • std::count

    • std::count_if

    • std::equal

    • std::find

    • std::find_if

    • std::find_first_of

    • std::for_each

    • std::generate

    • std::generate_n

    • std::lexicographical_compare

    • std::mismatch

    • std::search

    • std::search_n

    • std::transform

    • std::replace

    • std::replace_if

    • std::max_element

    • std::merge

    • std::min_element

    • std::nth_element

    • std::partial_sort

    • std::partition

    • std::random_shuffle

    • std::set_union

    • std::set_intersection

    • std::set_symmetric_difference

    • std::set_difference

    • std::sort

    • std::stable_sort

    • std::unique_copy

    Bibliography

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

    + .

    The Multi-Core Standard Template Library . Johannes Singler. Peter Sanders. Felix Putze. Copyright © 2007 . Euro-Par 2007: Parallel Processing. (LNCS 4641) diff --git a/libstdc++-v3/doc/html/manual/policy_data_structures.html b/libstdc++-v3/doc/html/manual/policy_data_structures.html index 94ef9591d89b..8db0377059a3 100644 --- a/libstdc++-v3/doc/html/manual/policy_data_structures.html +++ b/libstdc++-v3/doc/html/manual/policy_data_structures.html @@ -251,7 +251,7 @@ these invariants, one must supply some policy that is aware of these changes. Without this, it would be better to use a linked list (in itself very efficient for these purposes). -

    Figure 22.1. Node Invariants

    Node Invariants

    Underlying Data Structures

    +

    Figure 22.1. Node Invariants

    Node Invariants

    Underlying Data Structures

    The standard C++ library contains associative containers based on red-black trees and collision-chaining hash tables. These are very useful, but they are not ideal for all types of @@ -259,7 +259,7 @@

    The figure below shows the different underlying data structures currently supported in this library. -

    Figure 22.2. Underlying Associative Data Structures

    Underlying Associative Data Structures

    +

    Figure 22.2. Underlying Associative Data Structures

    Underlying Associative Data Structures

    A shows a collision-chaining hash-table, B shows a probing hash-table, C shows a red-black tree, D shows a splay tree, E shows a tree based on an ordered vector(implicit in the order of the @@ -378,7 +378,7 @@ no guarantee that the elements traversed will coincide with the logical elements between 1 and 5, as in label B. -

    Figure 22.3. Range Iteration in Different Data Structures

    Node Invariants

    +

    Figure 22.3. Range Iteration in Different Data Structures

    Node Invariants

    In our opinion, this problem is not caused just because red-black trees are order preserving while collision-chaining hash tables are (generally) not - it @@ -429,7 +429,7 @@ list, as in the graphic below, label B. Here the iterators are as light as can be, but the hash-table's operations are more complicated. -

    Figure 22.4. Point Iteration in Hash Data Structures

    Point Iteration in Hash Data Structures

    +

    Figure 22.4. Point Iteration in Hash Data Structures

    Point Iteration in Hash Data Structures

    It should be noted that containers based on collision-chaining hash-tables are not the only ones with this type of behavior; many other self-organizing data structures display it as well. @@ -445,7 +445,7 @@ container. The graphic below shows three cases: A1 and A2 show a red-black tree; B1 and B2 show a probing hash-table; C1 and C2 show a collision-chaining hash table. -

    Figure 22.5. Effect of erase in different underlying data structures

    Effect of erase in different underlying data structures

    1. +

      Figure 22.5. Effect of erase in different underlying data structures

      Effect of erase in different underlying data structures

      1. Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can be de-referenced and incremented. The sequence of iterators changed, but in a way that is well-defined by the interface. @@ -681,7 +681,7 @@ typically less structured than an associative container's tree; the third simply uses an associative container. These are shown in the figure below with labels A1 and A2, B, and C. -

        Figure 22.6. Underlying Priority Queue Data Structures

        Underlying Priority Queue Data Structures

        +

        Figure 22.6. Underlying Priority Queue Data Structures

        Underlying Priority Queue Data Structures

        No single implementation can completely replace any of the others. Some have better push and pop amortized performance, some have @@ -873,7 +873,7 @@ . Boost .

      [biblio.brodal96priority] - + Worst-case efficient priority queues . @@ -1167,7 +1167,7 @@ . Cambridge University Press .

      [biblio.mscom] - + COM: Component Model Object Technologies . @@ -1220,7 +1220,7 @@ . In Workshop on ML .

      [biblio.sgi_stl] - + Standard Template Library Programmer's Guide . diff --git a/libstdc++-v3/doc/html/manual/policy_data_structures_design.html b/libstdc++-v3/doc/html/manual/policy_data_structures_design.html index 611a58cba090..8247bf900382 100644 --- a/libstdc++-v3/doc/html/manual/policy_data_structures_design.html +++ b/libstdc++-v3/doc/html/manual/policy_data_structures_design.html @@ -171,7 +171,7 @@ naturally; collision-chaining hash tables (label B) store equivalent-key values in the same bucket, the bucket can be arranged so that equivalent-key values are consecutive. -

      Figure 22.8. Non-unique Mapping Standard Containers

      Non-unique Mapping Standard Containers

      +

      Figure 22.8. Non-unique Mapping Standard Containers

      Non-unique Mapping Standard Containers

      Put differently, the standards' non-unique mapping associative-containers are associative containers that map primary keys to linked lists that are embedded into the @@ -253,7 +253,7 @@ first graphic above. Labels A and B, respectively. Each shaded box represents some size-type or secondary associative-container. -

      Figure 22.10. Non-unique Mapping Containers

      Non-unique Mapping Containers

      +

      Figure 22.10. Non-unique Mapping Containers

      Non-unique Mapping Containers

      In the first example above, then, one would use an associative container mapping each user to an associative container which maps each application id to a start time (see @@ -306,7 +306,7 @@ shows invariants for order-preserving containers: point-type iterators are synonymous with range-type iterators. Orthogonally, Cshows invariants for "set" - containers: iterators are synonymous with const iterators.

      Figure 22.11. Point Iterator Hierarchy

      Point Iterator Hierarchy

      Note that point-type iterators in self-organizing containers + containers: iterators are synonymous with const iterators.

      Figure 22.11. Point Iterator Hierarchy

      Point Iterator Hierarchy

      Note that point-type iterators in self-organizing containers (hash-based associative containers) lack movement operators, such as operator++ - in fact, this is the reason why this library differentiates from the standard C++ librarys @@ -345,7 +345,7 @@ to the question of whether point-type iterators and range-type iterators are valid. The graphic below shows tags corresponding to different types of invalidation guarantees. -

      Figure 22.12. Invalidation Guarantee Tags Hierarchy

      Invalidation Guarantee Tags Hierarchy

      • +

        Figure 22.12. Invalidation Guarantee Tags Hierarchy

        Invalidation Guarantee Tags Hierarchy

        • basic_invalidation_guarantee corresponds to a basic guarantee that a point-type iterator, a found pointer, or a found reference, remains valid as long @@ -429,7 +429,7 @@

          This library contains a container tag hierarchy corresponding to the diagram below. -

          Figure 22.13. Container Tag Hierarchy

          Container Tag Hierarchy

          +

          Figure 22.13. Container Tag Hierarchy

          Container Tag Hierarchy

          Given any container Cntnr, the tag of the underlying data structure can be found via typename Cntnr::container_category. @@ -488,7 +488,7 @@ collision-chaining container, except for the following.

          1. Comb_Probe_Fn describes how to transform a probe sequence into a sequence of positions within the table.

          2. Probe_Fn describes a probe sequence policy.

          Some of the default template values depend on the values of other parameters, and are explained below.

        Details
        Hash Policies
        General

        Following is an explanation of some functions which hashing - involves. The graphic below illustrates the discussion.

        Figure 22.14. Hash functions, ranged-hash functions, and + involves. The graphic below illustrates the discussion.

        Figure 22.14. Hash functions, ranged-hash functions, and range-hashing functions

        Hash functions, ranged-hash functions, and range-hashing functions

        Let U be a domain (e.g., the integers, or the strings of 3 characters). A hash-table algorithm needs to map elements of U "uniformly" into the range [0,..., m - @@ -505,7 +505,7 @@ Z+,

        which maps a non-negative hash value, and a non-negative range upper-bound into a non-negative integral in the range between 0 (inclusive) and the range upper bound (exclusive), - i.e., for any r in Z+,

        0 ≤ g(r, m) ≤ m - 1

        The resulting ranged-hash function, is

        Equation 22.1. Ranged Hash Function

        + i.e., for any r in Z+,

        0 ≤ g(r, m) ≤ m - 1

        The resulting ranged-hash function, is

        Equation 22.1. Ranged Hash Function

        f(u , m) = g(h(u), m)

        From the above, it is obvious that given g and h, f can always be composed (however the converse @@ -525,7 +525,7 @@ transforming the sequence of hash values into a sequence of positions.

        Range Hashing

        Some common choices for range-hashing functions are the division, multiplication, and middle-square methods ([biblio.knuth98sorting]), defined - as

        Equation 22.2. Range-Hashing, Division Method

        + as

        Equation 22.2. Range-Hashing, Division Method

        g(r, m) = r mod m

        g(r, m) = ⌈ u/v ( a r mod v ) ⌉

        and

        g(r, m) = ⌈ u/v ( r2 mod v ) ⌉

        respectively, for some positive integrals u and v (typically powers of 2), and some a. Each of @@ -536,9 +536,9 @@ implement using the low level % (modulo) operation (for any m), or the low level & (bit-mask) operation (for the case where - m is a power of 2), i.e.,

        Equation 22.3. Division via Prime Modulo

        + m is a power of 2), i.e.,

        Equation 22.3. Division via Prime Modulo

        g(r, m) = r % m -

        and

        Equation 22.4. Division via Bit Mask

        +

        and

        Equation 22.4. Division via Bit Mask

        g(r, m) = r & m - 1, (with m = 2k for some k)

        respectively.

        The % (modulo) implementation has the advantage that for @@ -564,7 +564,7 @@ s = [ s0,..., st - 1]

        be a string of t characters, each of which is from domain S. Consider the following ranged-hash - function:

        Equation 22.5.  + function:

        Equation 22.5.  A Standard String Hash Function

        f1(s, m) = ∑ i = @@ -576,7 +576,7 @@ of a long DNA sequence (and so S = {'A', 'C', 'G', 'T'}). In this case, scanning the entire string might be prohibitively expensive. A possible alternative might be to use - only the first k characters of the string, where

        |S|k ≥ m ,

        i.e., using the hash function

        Equation 22.6.  + only the first k characters of the string, where

        |S|k ≥ m ,

        i.e., using the hash function

        Equation 22.6.  Only k String DNA Hash

        f2(s, m) = ∑ i @@ -607,12 +607,12 @@ the container transforms the key into a non-negative integral using the hash functor (points B and C), and transforms the result into a position using the combining functor (points D - and E).

        Figure 22.15. Insert hash sequence diagram

        Insert hash sequence diagram

        If cc_hash_table's + and E).

        Figure 22.15. Insert hash sequence diagram

        Insert hash sequence diagram

        If cc_hash_table's hash-functor, Hash_Fn is instantiated by null_type , then Comb_Hash_Fn is taken to be a ranged-hash function. The graphic below shows an insert sequence diagram. The user inserts an element (point A), the container transforms the key into a position using the combining functor - (points B and C).

        Figure 22.16. Insert hash sequence diagram with a null policy

        Insert hash sequence diagram with a null policy

        + (points B and C).

        Figure 22.16. Insert hash sequence diagram with a null policy

        Insert hash sequence diagram with a null policy

        Probing tables

        gp_hash_table is parametrized by Hash_Fn, Probe_Fn, @@ -635,7 +635,7 @@ a linear probe and a quadratic probe function, respectively.

    The graphic below shows the relationships. -

    Figure 22.17. Hash policy class diagram

    Hash policy class diagram

    Resize Policies
    General

    Hash-tables, as opposed to trees, do not naturally grow or +

    Figure 22.17. Hash policy class diagram

    Hash policy class diagram

    Resize Policies
    General

    Hash-tables, as opposed to trees, do not naturally grow or shrink. It is necessary to specify policies to determine how and when a hash table should change its size. Usually, resize policies can be decomposed into orthogonal policies:

    1. A size policy indicating how a hash table @@ -668,10 +668,10 @@ and some load factor be denoted by Α. We would like to calculate the minimal length of k, such that if there were Α m elements in the hash table, a probe sequence of length k would - be found with probability at most 1/m.

      Figure 22.18. Balls and bins

      Balls and bins

      Denote the probability that a probe sequence of length + be found with probability at most 1/m.

      Figure 22.18. Balls and bins

      Balls and bins

      Denote the probability that a probe sequence of length k appears in bin i by pi, the length of the probe sequence of bin i by - li, and assume uniform distribution. Then

      Equation 22.7.  + li, and assume uniform distribution. Then

      Equation 22.7.  Probability of Probe Sequence of Length k

      p1 = @@ -685,7 +685,7 @@ li are negatively-dependent ([biblio.dubhashi98neg]) . Let - I(.) denote the indicator function. Then

      Equation 22.8.  + I(.) denote the indicator function. Then

      Equation 22.8.  Probability Probe Sequence in Some Bin

      P( existsi li ≥ k ) = @@ -724,7 +724,7 @@ a resize is needed, and if so, what is the new size (points D to G); following the resize, it notifies the policy that a resize has completed (point H); finally, the element is - inserted, and the policy notified (point I).

      Figure 22.19. Insert resize sequence diagram

      Insert resize sequence diagram

      In practice, a resize policy can be usually orthogonally + inserted, and the policy notified (point I).

      Figure 22.19. Insert resize sequence diagram

      Insert resize sequence diagram

      In practice, a resize policy can be usually orthogonally decomposed to a size policy and a trigger policy. Consequently, the library contains a single class for instantiating a resize policy: hash_standard_resize_policy @@ -733,8 +733,8 @@ both, and acts as a standard delegate ([biblio.gof]) to these policies.

      The two graphics immediately below show sequence diagrams illustrating the interaction between the standard resize policy - and its trigger and size policies, respectively.

      Figure 22.20. Standard resize policy trigger sequence - diagram

      Standard resize policy trigger sequence diagram

      Figure 22.21. Standard resize policy size sequence + and its trigger and size policies, respectively.

      Figure 22.20. Standard resize policy trigger sequence + diagram

      Standard resize policy trigger sequence diagram

      Figure 22.21. Standard resize policy size sequence diagram

      Standard resize policy size sequence diagram

      Predefined Policies

      The library includes the following instantiations of size and trigger policies:

      1. hash_load_check_resize_trigger implements a load check trigger policy.

      2. cc_hash_max_collision_check_resize_trigger @@ -877,7 +877,7 @@ each node, and maintains node invariants (see [biblio.clrs2001].) The first stores in each node the size of the sub-tree rooted at the node; the second stores at each node the maximal endpoint of the - intervals at the sub-tree rooted at the node.

        Figure 22.22. Tree node invariants

        Tree node invariants

        Supporting such trees is difficult for a number of + intervals at the sub-tree rooted at the node.

        Figure 22.22. Tree node invariants

        Tree node invariants

        Supporting such trees is difficult for a number of reasons:

        1. There must be a way to specify what a node's metadata should be (if any).

        2. Various operations can invalidate node invariants. The graphic below shows how a right rotation, @@ -891,7 +891,7 @@ metadata.

        3. It is not feasible to know in advance which methods trees can support. Besides the usual find method, the first tree can support a find_by_order method, while - the second can support an overlaps method.

        Figure 22.23. Tree node invalidation

        Tree node invalidation

        These problems are solved by a combination of two means: + the second can support an overlaps method.

      Figure 22.23. Tree node invalidation

      Tree node invalidation

      These problems are solved by a combination of two means: node iterators, and template-template node updater parameters.

      Node Iterators

      Each tree-based container defines two additional iterator types, const_node_iterator @@ -920,7 +920,7 @@ node_update class, and publicly subclasses node_update. The graphic below shows this scheme, as well as some predefined policies (which are explained - below).

      Figure 22.24. A tree and its update policy

      A tree and its update policy

      node_update (an instantiation of + below).

      Figure 22.24. A tree and its update policy

      A tree and its update policy

      node_update (an instantiation of Node_Update) must define metadata_type as the type of metadata it requires. For order statistics, e.g., metadata_type might be size_t. @@ -939,7 +939,7 @@ nd_it. For example, say node x in the graphic below label A has an invalid invariant, but its' children, y and z have valid invariants. After the invocation, all three - nodes should have valid invariants, as in label B.

      Figure 22.25. Restoring node invariants

      Restoring node invariants

      When a tree operation might invalidate some node invariant, + nodes should have valid invariants, as in label B.

      Figure 22.25. Restoring node invariants

      Restoring node invariants

      When a tree operation might invalidate some node invariant, it invokes this method in its node_update base to restore the invariant. For example, the graphic below shows an insert operation (point A); the tree performs some @@ -947,7 +947,7 @@ C, and D). (It is well known that any insert, erase, split or join, can restore all node invariants by a small number of node invariant updates ([biblio.clrs2001]) - .

      Figure 22.26. Insert update sequence

      Insert update sequence

      To complete the description of the scheme, three questions + .

      Figure 22.26. Insert update sequence

      Insert update sequence

      To complete the description of the scheme, three questions need to be answered:

      1. How can a tree which supports order statistics define a method such as find_by_order?

      2. How can the node updater base access methods of the tree?

      3. How can the following cyclic dependency be resolved? @@ -989,7 +989,7 @@ node's metadata (this is halting reducible). In the graphic below, assume the shaded node is inserted. The tree would have to traverse the useless path shown to the root, applying - redundant updates all the way.

      Figure 22.27. Useless update path

      Useless update path

      A null policy class, null_node_update + redundant updates all the way.

    Figure 22.27. Useless update path

    Useless update path

    A null policy class, null_node_update solves both these problems. The tree detects that node invariants are irrelevant, and defines all accordingly.

    Split and Join

    Tree-based containers support split and join methods. It is possible to split a tree so that it passes @@ -1072,7 +1072,7 @@ sub-tree with leafs "a" and "as". The maximal common prefix is "a". The internal node contains, consequently, to const iterators, one pointing to 'a', and the other to - 's'.

    Figure 22.28. A PATRICIA trie

    A PATRICIA trie

    Node Invariants

    Trie-based containers support node invariants, as do + 's'.

    Figure 22.28. A PATRICIA trie

    A PATRICIA trie

    Node Invariants

    Trie-based containers support node invariants, as do tree-based containers. There are two minor differences, though, which, unfortunately, thwart sharing them sharing the same node-updating policies:

    1. A trie's Node_Update template-template @@ -1081,7 +1081,7 @@ parametrized by Cmp_Fn.

    2. Tree-based containers store values in all nodes, while trie-based containers (at least in this implementation) store values in leafs.

    The graphic below shows the scheme, as well as some predefined - policies (which are explained below).

    Figure 22.29. A trie and its update policy

    A trie and its update policy

    This library offers the following pre-defined trie node + policies (which are explained below).

    Figure 22.29. A trie and its update policy

    A trie and its update policy

    This library offers the following pre-defined trie node updating policies:

    1. trie_order_statistics_node_update supports order statistics. @@ -1129,7 +1129,7 @@ simple list of integer keys. If we search for the integer 6, we are paying an overhead: the link with key 6 is only the fifth link; if it were the first link, it could be accessed - faster.

      Figure 22.30. A simple list

      A simple list

      List-update algorithms reorder lists as elements are + faster.

      Figure 22.30. A simple list

      A simple list

      List-update algorithms reorder lists as elements are accessed. They try to determine, by the access history, which keys to move to the front of the list. Some of these algorithms require adding some metadata alongside each entry.

      For example, in the graphic below label A shows the counter @@ -1139,7 +1139,7 @@ predetermined value, say 10, as shown in label C, the count is set to 0 and the node is moved to the front of the list, as in label D. -

      Figure 22.31. The counter algorithm

      The counter algorithm

    Policies

    this library allows instantiating lists with policies +

    Figure 22.31. The counter algorithm

    The counter algorithm

    Policies

    this library allows instantiating lists with policies implementing any algorithm moving nodes to the front of the list (policies implementing algorithms interchanging nodes are unsupported).

    Associative containers based on lists are parametrized by a @@ -1311,7 +1311,7 @@ sequence; the second uses a tree (or forest of trees), which is typically less structured than an associative container's tree; the third simply uses an associative container. These are - shown in the graphic below, in labels A1 and A2, label B, and label C.

    Figure 22.32. Underlying Priority-Queue Data-Structures.

    Underlying Priority-Queue Data-Structures.

    Roughly speaking, any value that is both pushed and popped + shown in the graphic below, in labels A1 and A2, label B, and label C.

    Figure 22.32. Underlying Priority-Queue Data-Structures.

    Underlying Priority-Queue Data-Structures.

    Roughly speaking, any value that is both pushed and popped from a priority queue must incur a logarithmic expense (in the amortized sense). Any priority queue implementation that would avoid this, would violate known bounds on comparison-based @@ -1391,7 +1391,7 @@ container Cntnr, the tag of the underlying data structure can be found via typename Cntnr::container_category; this is one of the possible tags shown in the graphic below. -

    Figure 22.33. Priority-Queue Data-Structure Tags.

    Priority-Queue Data-Structure Tags.

    Additionally, a traits mechanism can be used to query a +

    Figure 22.33. Priority-Queue Data-Structure Tags.

    Priority-Queue Data-Structure Tags.

    Additionally, a traits mechanism can be used to query a container type for its attributes. Given any container Cntnr, then

    __gnu_pbds::container_traits<Cntnr>

    is a traits class identifying the properties of the diff --git a/libstdc++-v3/doc/html/manual/policy_data_structures_using.html b/libstdc++-v3/doc/html/manual/policy_data_structures_using.html index 16eca788ad5f..7ddc83203a39 100644 --- a/libstdc++-v3/doc/html/manual/policy_data_structures_using.html +++ b/libstdc++-v3/doc/html/manual/policy_data_structures_using.html @@ -62,7 +62,7 @@ In addition, there are the following diagnostics classes, used to report errors specific to this library's data structures. -

    Figure 22.7. Exception Hierarchy

    Exception Hierarchy

    Tutorial

    Basic Use

    +

    Figure 22.7. Exception Hierarchy

    Exception Hierarchy

    Tutorial

    Basic Use

    For the most part, the policy-based containers containers in namespace __gnu_pbds have the same interface as the equivalent containers in the standard C++ library, except for diff --git a/libstdc++-v3/doc/html/manual/profile_mode.html b/libstdc++-v3/doc/html/manual/profile_mode.html index d3121a9a3a42..c05d86de05ce 100644 --- a/libstdc++-v3/doc/html/manual/profile_mode.html +++ b/libstdc++-v3/doc/html/manual/profile_mode.html @@ -138,7 +138,7 @@ vector-size: improvement = 3: call stack = 0x804842c ... call context. (Environment variable not supported.)

    -

    Bibliography

    +

    Bibliography

    Perflint: A Context Sensitive Performance Advisor for C++ Programs . Lixia Liu. Silvius Rus. Copyright © 2009 . Proceedings of the 2009 International Symposium on Code Generation diff --git a/libstdc++-v3/doc/html/manual/setup.html b/libstdc++-v3/doc/html/manual/setup.html index c83774b8f48c..bb537097df9c 100644 --- a/libstdc++-v3/doc/html/manual/setup.html +++ b/libstdc++-v3/doc/html/manual/setup.html @@ -30,10 +30,7 @@

    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. + libstdc++ is 2.15.90.0.1.1. 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. diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 7ab80dcdcac7..bc62c40cb57b 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -8,7 +8,7 @@ This status table is based on the table of contents of ISO/IEC 14882:2003.

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

    Table 1.1. C++ 1998/2003 Implementation Status

    SectionDescriptionStatusComments
    +

    Table 1.1. C++ 1998/2003 Implementation Status

    SectionDescriptionStatusComments
    18 Language support @@ -158,7 +158,7 @@ presence of the required flag.

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

    Table 1.2. C++ 2011 Implementation Status

    SectionDescriptionStatusComments
    +

    Table 1.2. C++ 2011 Implementation Status

    SectionDescriptionStatusComments
    18 Language support @@ -176,16 +176,11 @@ particular release. boost::shared_ptr.

    20.7.2.3Class template weak_ptrY 
    20.7.2.4Class template emable_shared_from_thisY 
    20.7.2.5shared_ptr atomic accessPartial 
    20.7.2.6Smart pointer hash supportY 
    20.8Function objects  
    20.8.1Definitions  
    20.8.2Requirements  
    20.8.3Class template reference_wrapperY 
    20.8.4Arithmetic operationY 
    20.8.5ComparisonsY 
    20.8.6Logical operationsY 
    20.8.7Bitwise operationsY 
    20.8.8NegatorsY 
    20.8.9Function template bindY 
    20.8.10Function template mem_fnPartialMissing overloads for reference-qualified member functions
    20.8.11Polymorphic function wrappers  
    20.8.11.1Class bad_function_callY 
    20.8.11.2Class template functionPartialMissing allocator support
    20.8.12Class template hashY 
    20.9Metaprogramming and type traits  
    20.9.1RequirementsY 
    20.9.2Header <type_traits> synopsis  
    20.9.3Helper classesY 
    20.9.4Unary Type TraitsY 
    20.9.4.1Primary type categoriesY 
    20.9.4.2Composite type traitsY 
    20.9.4.3Type propertiesPartialMissing is_trivially_copyable, - is_assignable, is_copy_assignable, is_move_assignable, is_trivially_constructible, is_trivially_default_constructible, is_trivially_copy_constructible, is_trivially_move_constructible, is_trivially_assignable, is_trivially_default_assignable, - is_trivially_copy_assignable, is_trivially_move_assignable, - is_trivially_destructible, - is_nothrow_assignable, - is_nothrow_copy_assignable, is_nothrow_move_assignable, - is_nothrow_destructible -
    20.9.5Type property queriesY 
    20.9.6Relationships between typesY 
    20.9.7Transformations between types  
    20.9.7.1Const-volatile modificationsY 
    20.9.7.2Reference modificationsY 
    20.9.7.3Sign modificationsY 
    20.9.7.4Array modificationsY 
    20.9.7.5Pointer modificationsY 
    20.9.7.6Other transformationsY 
    20.10Compile-time rational arithmetic  
    20.10.1In general  
    20.10.2Header <ratio> synopsis  
    20.10.3Class template ratioY 
    20.10.4Arithmetic on ratiosY 
    20.10.5Comparison of ratiosY 
    20.10.6SI types for ratioY 
    20.11Time utilities  
    20.11.3Clock requirementsY 
    20.11.4Time-related traits  
    20.11.4.1treat_as_floating_pointY 
    20.11.4.2duration_valuesY 
    20.11.4.3Specializations of common_typeY 
    20.11.5Class template durationPartialMissing constexpr for non-member arithmetic operations
    20.11.6Class template time_pointY 
    20.11.7Clocks  
    20.11.7.1Class system_clockY 
    20.11.7.2Class steady_clockY 
    20.11.7.3Class high_resolution_clockY 
    20.11.8Date and time functionsY 
    20.12Scoped allocator adaptorPartial 
    20.12.1Header <scoped_allocator> synopsis  
    20.12.2Scoped allocator adaptor member typesY 
    20.12.3Scoped allocator adaptor constructorsY 
    20.12.4Scoped allocator adaptor membersPartialMissing std::pair piecewise construction.
    20.12.5Scoped allocator operatorsY 
    20.13Class type_indexY 
    + is_trivially_copy_assignable, is_trivially_move_assignable +
    20.9.5Type property queriesY 
    20.9.6Relationships between typesY 
    20.9.7Transformations between types  
    20.9.7.1Const-volatile modificationsY 
    20.9.7.2Reference modificationsY 
    20.9.7.3Sign modificationsY 
    20.9.7.4Array modificationsY 
    20.9.7.5Pointer modificationsY 
    20.9.7.6Other transformationsY 
    20.10Compile-time rational arithmetic  
    20.10.1In general  
    20.10.2Header <ratio> synopsis  
    20.10.3Class template ratioY 
    20.10.4Arithmetic on ratiosY 
    20.10.5Comparison of ratiosY 
    20.10.6SI types for ratioY 
    20.11Time utilities  
    20.11.3Clock requirementsY 
    20.11.4Time-related traits  
    20.11.4.1treat_as_floating_pointY 
    20.11.4.2duration_valuesY 
    20.11.4.3Specializations of common_typeY 
    20.11.5Class template durationPartialMissing constexpr for non-member arithmetic operations
    20.11.6Class template time_pointY 
    20.11.7Clocks  
    20.11.7.1Class system_clockY 
    20.11.7.2Class steady_clockY 
    20.11.7.3Class high_resolution_clockY 
    20.11.8Date and time functionsY 
    20.12Scoped allocator adaptorPartial 
    20.12.1Header <scoped_allocator> synopsis  
    20.12.2Scoped allocator adaptor member typesY 
    20.12.3Scoped allocator adaptor constructorsY 
    20.12.4Scoped allocator adaptor membersPartialOUTERMOST is not recursive.
    20.12.5Scoped allocator operatorsY 
    20.13Class type_indexY 
    21 Strings @@ -200,7 +195,8 @@ particular release. 23 Containers -
    23.1General  
    23.2Container requirements  
    23.2.1General container requirementsPartialOnly vector meets the requirements +
    23.1General  
    23.2Container requirements  
    23.2.1General container requirementsPartialOnly vector and forward_list + meet the requirements relating to allocator use and propagation.
    23.2.2Container data racesY 
    23.2.3Sequence containersY 
    23.2.4Associative containersY 
    23.2.5Unordered associative containersY 
    23.3Sequence containers  
    23.3.2Class template arrayY 
    23.3.3Class template dequePartialinsert and erase members do not take const_iterator arguments (N2350).
    23.3.4Class template forward_listY 
    23.3.5Class template listPartialinsert and erase members do not take const_iterator arguments (N2350).
    23.3.6Class template vectorPartialinsert and erase members do not @@ -294,7 +290,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.3. C++ TR1 Implementation Status

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

    Table 1.3. C++ TR1 Implementation Status

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

    Uses code from boost::shared_ptr. @@ -315,7 +311,7 @@ decimal floating-point arithmetic

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

    Table 1.4. C++ TR 24733 Implementation Status

    SectionDescriptionStatusComments
    +

    Table 1.4. C++ TR 24733 Implementation Status

    SectionDescriptionStatusComments
    0 Introduction diff --git a/libstdc++-v3/doc/html/manual/strings.html b/libstdc++-v3/doc/html/manual/strings.html index cd3ff0b1a2f7..70e3250d1b3b 100644 --- a/libstdc++-v3/doc/html/manual/strings.html +++ b/libstdc++-v3/doc/html/manual/strings.html @@ -7,7 +7,7 @@ Standard Contents  Next

    Chapter 7.  Strings - +

    String Classes

    Simple Transformations

    Here are Standard, simple, and portable ways to perform common transformations on a string instance, such as diff --git a/libstdc++-v3/doc/html/manual/support.html b/libstdc++-v3/doc/html/manual/support.html index 50f6147f2004..99fd48cd1636 100644 --- a/libstdc++-v3/doc/html/manual/support.html +++ b/libstdc++-v3/doc/html/manual/support.html @@ -7,7 +7,7 @@ Standard Contents

     Next

    Chapter 4.  Support - +

    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/test.html b/libstdc++-v3/doc/html/manual/test.html index 87c72e5717f4..93df8b6f6a39 100644 --- a/libstdc++-v3/doc/html/manual/test.html +++ b/libstdc++-v3/doc/html/manual/test.html @@ -493,7 +493,7 @@ only default variables. reporting functions including:

    • time_counter

    • resource_counter

    • report_performance

    Special Topics

    Qualifying Exception Safety Guarantees - +

    Overview

    Testing is composed of running a particular test sequence, and looking at what happens to the surrounding code when diff --git a/libstdc++-v3/doc/html/manual/using.html b/libstdc++-v3/doc/html/manual/using.html index 6607a0ce4522..3b5129bdc807 100644 --- a/libstdc++-v3/doc/html/manual/using.html +++ b/libstdc++-v3/doc/html/manual/using.html @@ -11,5 +11,5 @@ enumerated and detailed in the table below.

    By default, g++ is equivalent to g++ -std=gnu++98. The standard library also defaults to this dialect. -

    Table 3.1. C++ Command Options

    Option FlagsDescription
    -std=c++98Use the 1998 ISO C++ standard plus amendments.
    -std=gnu++98As directly above, with GNU extensions.
    -std=c++11Use the 2011 ISO C++ standard.
    -std=gnu++11As directly above, with GNU extensions.
    -fexceptionsSee exception-free dialect
    -frttiAs above, but RTTI-free dialect.
    -pthread or -pthreadsFor ISO C++11 <thread>, <future>, +

    Table 3.1. C++ Command Options

    Option FlagsDescription
    -std=c++98Use the 1998 ISO C++ standard plus amendments.
    -std=gnu++98As directly above, with GNU extensions.
    -std=c++11Use the 2011 ISO C++ standard.
    -std=gnu++11As directly above, with GNU extensions.
    -fexceptionsSee exception-free dialect
    -frttiAs above, but RTTI-free dialect.
    -pthread or -pthreadsFor ISO C++11 <thread>, <future>, <mutex>, or <condition_variable>.
    -fopenmpFor parallel mode.

    diff --git a/libstdc++-v3/doc/html/manual/using_exceptions.html b/libstdc++-v3/doc/html/manual/using_exceptions.html index 8a65b2163629..13d62afb3fcd 100644 --- a/libstdc++-v3/doc/html/manual/using_exceptions.html +++ b/libstdc++-v3/doc/html/manual/using_exceptions.html @@ -266,8 +266,8 @@ is called. } catch(...) { this->_M_setstate(ios_base::badbit); } -

    Bibliography

    - +

    Bibliography

    + System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008) . @@ -275,39 +275,39 @@ is called. . Copyright © 2008 The Open Group/The Institute of Electrical and Electronics Engineers, Inc. - .

    + .

    Error and Exception Handling . David Abrahams . Boost - .

    + .

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

    + .

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

    + .

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

    + .

    + . Bjarne Stroustrup.

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

    + . Herb Sutter.

    GCC Bug 25191: exception_defines.h #defines try/catch diff --git a/libstdc++-v3/doc/html/manual/using_headers.html b/libstdc++-v3/doc/html/manual/using_headers.html index 423fcf765f46..1172cb0ae0f2 100644 --- a/libstdc++-v3/doc/html/manual/using_headers.html +++ b/libstdc++-v3/doc/html/manual/using_headers.html @@ -19,19 +19,19 @@ the 1998 standard as updated for 2003, and the current 2011 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.2. C++ 1998 Library Headers

    algorithmbitsetcomplexdequeexception
    fstreamfunctionaliomanipiosiosfwd
    iostreamistreamiteratorlimitslist
    localemapmemorynewnumeric
    ostreamqueuesetsstreamstack
    stdexceptstreambufstringutilitytypeinfo
    valarrayvector   

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

    cassertcerrnocctypecfloatciso646
    climitsclocalecmathcsetjmpcsignal
    cstdargcstddefcstdiocstdlibcstring
    ctimecwcharcwctype  

    +

    Table 3.2. C++ 1998 Library Headers

    algorithmbitsetcomplexdequeexception
    fstreamfunctionaliomanipiosiosfwd
    iostreamistreamiteratorlimitslist
    localemapmemorynewnumeric
    ostreamqueuesetsstreamstack
    stdexceptstreambufstringutilitytypeinfo
    valarrayvector   

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

    cassertcerrnocctypecfloatciso646
    climitsclocalecmathcsetjmpcsignal
    cstdargcstddefcstdiocstdlibcstring
    ctimecwcharcwctype  

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

    Table 3.4. C++ 2011 Library Headers

    algorithmarraybitsetchronocomplex
    condition_variabledequeexceptionforward_listfstream
    functionalfutureinitalizer_listiomanipios
    iosfwdiostreamistreamiteratorlimits
    listlocalemapmemorymutex
    newnumericostreamqueuerandom
    ratioregexsetsstreamstack
    stdexceptstreambufstringsystem_errorthread
    tupletype_traitstypeinfounordered_mapunordered_set
    utilityvalarrayvector  

    Table 3.5. C++ 2011 Library Headers for C Library Facilities

    cassertccomplexcctypecerrnocfenv
    cfloatcinttypesciso646climitsclocale
    cmathcsetjmpcsignalcstdargcstdbool
    cstddefcstdintcstdlibcstdiocstring
    ctgmathctimecucharcwcharcwctype

    +

    Table 3.4. C++ 2011 Library Headers

    algorithmarraybitsetchronocomplex
    condition_variabledequeexceptionforward_listfstream
    functionalfutureinitalizer_listiomanipios
    iosfwdiostreamistreamiteratorlimits
    listlocalemapmemorymutex
    newnumericostreamqueuerandom
    ratioregexsetsstreamstack
    stdexceptstreambufstringsystem_errorthread
    tupletype_traitstypeinfounordered_mapunordered_set
    utilityvalarrayvector  

    Table 3.5. C++ 2011 Library Headers for C Library Facilities

    cassertccomplexcctypecerrnocfenv
    cfloatcinttypesciso646climitsclocale
    cmathcsetjmpcsignalcstdargcstdbool
    cstddefcstdintcstdlibcstdiocstring
    ctgmathctimecucharcwcharcwctype

    In addition, TR1 includes as: -

    Table 3.6. C++ TR 1 Library Headers

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

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

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

    Decimal floating-point arithmetic is available if the C++ +

    Table 3.6. C++ TR 1 Library Headers

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

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

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

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

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

    decimal/decimal

    +

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

    decimal/decimal

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

    Table 3.9. C++ ABI Headers

    cxxabi.hcxxabi_forced.h

    +

    Table 3.9. C++ ABI Headers

    cxxabi.hcxxabi_forced.h

    And a large variety of extensions. -

    Table 3.10. Extension Headers

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

    Table 3.11. Extension Debug Headers

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

    Table 3.12. Extension Profile Headers

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

    Table 3.13. Extension Parallel Headers

    parallel/algorithmparallel/numeric

    Mixing Headers

    A few simple rules. +

    Table 3.10. Extension Headers

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

    Table 3.11. Extension Debug Headers

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

    Table 3.12. Extension Profile Headers

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

    Table 3.13. Extension Parallel Headers

    parallel/algorithmparallel/numeric

    Mixing Headers

    A few simple rules.

    First, mixing different dialects of the standard headers is not possible. It's an all-or-nothing affair. Thus, code like

    diff --git a/libstdc++-v3/doc/html/manual/utilities.html b/libstdc++-v3/doc/html/manual/utilities.html
    index a831ee1953b2..49aa9a06c6ef 100644
    --- a/libstdc++-v3/doc/html/manual/utilities.html
    +++ b/libstdc++-v3/doc/html/manual/utilities.html
    @@ -7,8 +7,8 @@
         Standard Contents
       
     Next

    Functors

    If you don't know what functors are, you're not alone. Many people get slightly the wrong idea. In the interest of not reinventing the wheel, we will refer you to the introduction to the functor concept written by SGI as part of their STL, in