diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3d1f2449e7a..7bb4c1cc0fe 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,13 @@ 2018-01-18 Jonathan Wakely + Backport from mainline + 2017-10-23 Jonathan Wakely + + * doc/xml/manual/intro.xml: Include new section. + * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124 + status. + * doc/html/*: Regenerate. + Backport from mainline 2017-10-19 Jonathan Wakely diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index 0e67010c6e2..576c088c5a0 100644 --- a/libstdc++-v3/doc/html/index.html +++ b/libstdc++-v3/doc/html/index.html @@ -23,7 +23,7 @@


Table of Contents

The GNU C++ Library Manual
I. Introduction -
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
C++ 2017
Implementation Specific Behavior
C++ TR1
Implementation Specific Behavior
C++ TR 24733
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
Profile-based Performance Analysis
II. +
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
C++ 2017
Implementation Specific Behavior
C++ TR1
Implementation Specific Behavior
C++ TR 24733
C++ IS 29124
Implementation Specific Behavior
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
Profile-based Performance Analysis
II. Standard Contents
4. Support diff --git a/libstdc++-v3/doc/html/manual/bugs.html b/libstdc++-v3/doc/html/manual/bugs.html index bbfd589c78f..d4538f26fa5 100644 --- a/libstdc++-v3/doc/html/manual/bugs.html +++ b/libstdc++-v3/doc/html/manual/bugs.html @@ -428,6 +428,9 @@

2332: regex_iterator/regex_token_iterator should forbid temporary regexes

Add deleted constructors. +

2332: + Unnecessary copying when inserting into maps with braced-init syntax +

Add overloads of insert taking value_type&& rvalues.

2399: shared_ptr's constructor from unique_ptr should be constrained

Constrain the constructor to require convertibility. diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index 64f088ec5cb..ec39379387d 100644 --- a/libstdc++-v3/doc/html/manual/index.html +++ b/libstdc++-v3/doc/html/manual/index.html @@ -4,7 +4,7 @@


Table of Contents

I. Introduction -
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
C++ 2017
Implementation Specific Behavior
C++ TR1
Implementation Specific Behavior
C++ TR 24733
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
Profile-based Performance Analysis
II. +
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
C++ 2017
Implementation Specific Behavior
C++ TR1
Implementation Specific Behavior
C++ TR 24733
C++ IS 29124
Implementation Specific Behavior
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
Profile-based Performance Analysis
II. Standard Contents
4. Support @@ -149,7 +149,7 @@ Support for C++11 dialect.
22.10. Non-unique Mapping Containers
22.11. Point Iterator Hierarchy
22.12. Invalidation Guarantee Tags Hierarchy
22.13. Container Tag Hierarchy
22.14. Hash functions, ranged-hash functions, and range-hashing functions
22.15. Insert hash sequence diagram
22.16. Insert hash sequence diagram with a null policy
22.17. Hash policy class diagram
22.18. Balls and bins
22.19. Insert resize sequence diagram
22.20. Standard resize policy trigger sequence diagram
22.21. Standard resize policy size sequence - diagram
22.22. Tree node invariants
22.23. Tree node invalidation
22.24. A tree and its update policy
22.25. Restoring node invariants
22.26. Insert update sequence
22.27. Useless update path
22.28. A PATRICIA trie
22.29. A trie and its update policy
22.30. A simple list
22.31. The counter algorithm
22.32. Underlying Priority-Queue Data-Structures.
22.33. Priority-Queue Data-Structure Tags.
B.1. Configure and Build File Dependencies
\ No newline at end of file + \ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 788f7df1809..ad4134ed55f 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -2,7 +2,7 @@ Chapter 1. Status

Chapter 1. Status

Implementation Status

C++ 1998/2003

Implementation Status

Next


Chapter 1. Status

Implementation Status

C++ 1998/2003

Implementation Status

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

This page describes the C++ support in the GCC 7 series. @@ -871,69 +871,69 @@ and test for __STDCPP_MATH_SPEC_FUNCS__ >= 201003L. 2011 Implementation Specific Behavior. This section only documents behaviour which is new in the 2017 standard.

- 20.6.5 [optional.bad_optional_access] + 23.6.5 [optional.bad_optional_access] what() returns "bad optional access".

- 20.7.2 [variant.variant] + 23.7.3 [variant.variant] Whether variant supports over-aligned types should be documented here.

- 20.7.10 [variant.bad.access] + 23.7.10 [variant.bad.access] what() returns "Unexpected index".

- 20.12.5.2 [memory.resource.pool.options] + 23.12.5.2 [memory.resource.pool.options] The limits for maximum number of blocks and largest allocation size supported by pool_options should be documented here.

- 20.12.6.1 [memory.resource.monotonic.buffer.ctor] + 23.12.6.1 [memory.resource.monotonic.buffer.ctor] The default next_buffer_size and growth factor should be documented here.

- 20.15.4.3 [meta.unary.prop] + 23.15.4.3 [meta.unary.prop] The predicate condition for has_unique_object_representations is true for all scalar types except floating point types.

- 20.19.3 [execpol.type], - 25.2.3 [algorithms.parallel.exec] + 23.19.3 [execpol.type], + 28.4.3 [algorithms.parallel.exec] There are no implementation-defined execution policies.

- 22.4.2 [string.view.template] + 24.4.2 [string.view.template] basic_string_view<C, T>::iterator is C* and basic_string_view<C, T>::const_iterator is const C*.

- 25.2.3 [algorithms.parallel.exec] + 28.4.3 [algorithms.parallel.exec] Threads of execution created by std::thread provide concurrent forward progress guarantees, so threads of execution implicitly created by the library will provide parallel forward progress guarantees.

- 26.4.1 [cfenv.syn] + 29.4.1 [cfenv.syn] The effects of the <cfenv> functions depends on whether the FENV_ACCESS pragma is supported, and on the C library that provides the header.

- 26.6.9 [c.math.rand] + 29.6.9 [c.math.rand] Whether the rand function may introduce data races depends on the target C library that provides the function.

- 26.9.5 [sf.cmath] + 29.9.5 [sf.cmath] The effect of calling the mathematical special functions with large inputs should be documented here.

- 27.10.2.1 [fs.conform.9945] + 30.10.2.1 [fs.conform.9945] The behavior of the filesystem library implementation will depend on the target operating system. Some features will not be not supported on some targets.

- 27.10.6 [fs.filesystem.syn] + 30.10.5 [fs.filesystem.syn] The clock used for file times is std::chrono::system_clock.

- 27.10.8 [path.generic] + 30.10.7.1 [fs.path.generic] dot-dot in the root-directory refers to the root-directory itself.

C++ TR1

This table is based on the table of contents of ISO/IEC DTR 19768 @@ -985,7 +985,74 @@ This page describes the TR 24733 support in the GCC 7 series. 4 Notes on C compatibility -



C++ IS 29124

+This table is based on the table of contents of ISO/IEC FDIS 29124 +Doc No: N3060 Date: 2010-03-06 +Extensions to the C++ Library to support mathematical special functions +

+Complete support for IS 29124 is in GCC 6.1 and later releases, when using +at least C++11 (for older releases or C++98/C++03 use TR1 instead). +For C++11 and C++14 the additions to the library are not declared by their +respective headers unless __STDCPP_WANT_MATH_SPEC_FUNCS__ +is defined as a macro that expands to a non-zero integer constant. +For C++17 the special functions are always declared (since GCC 7.1). +

+When the special functions are declared the macro +__STDCPP_MATH_SPEC_FUNCS__ is defined to 201003L. +

+In addition to the special functions defined in IS 29124, for +non-strict modes (i.e. -std=gnu++NN modes) the +hypergeometric functions and confluent hypergeometric functions +from TR1 are also provided, defined in namespace +__gnu_cxx. +

Table 1.9. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of + __STDCPP_WANT_MATH_SPEC_FUNCS__
8Mathematical special functionsY 
8.1Additions to header <cmath> synopsisY 
8.1.1associated Laguerre polynomialsY 
8.1.2associated Legendre functionsY 
8.1.3beta functionY 
8.1.4(complete) elliptic integral of the first kindY 
8.1.5(complete) elliptic integral of the second kindY 
8.1.6(complete) elliptic integral of the third kindY 
8.1.7regular modified cylindrical Bessel functionsY 
8.1.8cylindrical Bessel functions (of the first kind)Y 
8.1.9irregular modified cylindrical Bessel functionsY 
8.1.10cylindrical Neumann functionsY 
8.1.11(incomplete) elliptic integral of the first kindY 
8.1.12(incomplete) elliptic integral of the second kindY 
8.1.13(incomplete) elliptic integral of the third kindY 
8.1.14exponential integralY 
8.1.15Hermite polynomialsY 
8.1.16Laguerre polynomialsY 
8.1.17Legendre polynomialsY 
8.1.18Riemann zeta functionY 
8.1.19spherical Bessel functions (of the first kind)Y 
8.1.20spherical associated Legendre functionsY 
8.1.21spherical Neumann functionsY 
8.2Additions to header <math.h>Y 
8.3The header <ctgmath>PartialConflicts with C++ 2011 requirements.
8.4The header <tgmath.h>NConflicts with C++ 2011 requirements.

Implementation Specific Behavior

For behaviour which is specified by the 2011 standard, + see C++ 2011 Implementation + Specific Behavior. This section documents behaviour which + is required by IS 29124. +

+ 7.2 [macro.user]/3 /4 The functions declared in + Clause 8 are only declared when + __STDCPP_WANT_MATH_SPEC_FUNCS__ == 1 + (or in C++17 mode, for GCC 7.1 and later). +

+ 8.1.1 [sf.cmath.Lnm]/1 The effect of calling + these functions with n >= 128 or m >= 128 + should be described here. +

+ 8.1.2 [sf.cmath.Plm]/3 The effect of calling + these functions with l >= 128 should be described here. +

+ 8.1.3 [sf.cmath.I]/3 The effect of calling + these functions with nu >= 128 should be described here. +

+ 8.1.8 [sf.cmath.J]/3 The effect of calling + these functions with nu >= 128 should be described here. +

+ 8.1.9 [sf.cmath.K]/3 The effect of calling + these functions with nu >= 128 should be described here. +

+ 8.1.10 [sf.cmath.N]/3 The effect of calling + these functions with nu >= 128 should be described here. +

+ 8.1.15 [sf.cmath.Hn]/3 The effect of calling + these functions with n >= 128 should be described here. +

+ 8.1.16 [sf.cmath.Ln]/3 The effect of calling + these functions with n >= 128 should be described here. +

+ 8.1.17 [sf.cmath.Pl]/3 The effect of calling + these functions with l >= 128 should be described here. +

+ 8.1.19 [sf.cmath.j]/3 The effect of calling + these functions with n >= 128 should be described here. +

+ 8.1.20 [sf.cmath.Ylm]/3 The effect of calling + these functions with l >= 128 should be described here. +

+ 8.1.21 [sf.cmath.n]/3 The effect of calling + these functions with n >= 128 should be described here. +

\ No newline at end of file diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index 157b2845463..61f948cdf39 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -50,6 +50,10 @@ + + + + diff --git a/libstdc++-v3/doc/xml/manual/status_cxxis29124.xml b/libstdc++-v3/doc/xml/manual/status_cxxis29124.xml new file mode 100644 index 00000000000..40a90fc9944 --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/status_cxxis29124.xml @@ -0,0 +1,315 @@ +
+ + +C++ IS 29124 + + ISO C++ + Special Functions + + + + +This table is based on the table of contents of ISO/IEC FDIS 29124 +Doc No: N3060 Date: 2010-03-06 +Extensions to the C++ Library to support mathematical special functions + + + +Complete support for IS 29124 is in GCC 6.1 and later releases, when using +at least C++11 (for older releases or C++98/C++03 use TR1 instead). +For C++11 and C++14 the additions to the library are not declared by their +respective headers unless __STDCPP_WANT_MATH_SPEC_FUNCS__ +is defined as a macro that expands to a non-zero integer constant. +For C++17 the special functions are always declared (since GCC 7.1). + + + +When the special functions are declared the macro +__STDCPP_MATH_SPEC_FUNCS__ is defined to 201003L. + + + +In addition to the special functions defined in IS 29124, for +non-strict modes (i.e. -std=gnu++NN modes) the +hypergeometric functions and confluent hypergeometric functions +from TR1 are also provided, defined in namespace +__gnu_cxx. + + + + + +C++ Special Functions Implementation Status + + + + + + + + + + Section + Description + Status + Comments + + + + + + 7 + Macro names + Partial + No diagnostic for inconsistent definitions of + __STDCPP_WANT_MATH_SPEC_FUNCS__ + + + 8 + Mathematical special functions + Y + + + + 8.1 + Additions to header <cmath> synopsis + Y + + + + 8.1.1 + associated Laguerre polynomials + Y + + + + 8.1.2 + associated Legendre functions + Y + + + + 8.1.3 + beta function + Y + + + + 8.1.4 + (complete) elliptic integral of the first kind + Y + + + + 8.1.5 + (complete) elliptic integral of the second kind + Y + + + + 8.1.6 + (complete) elliptic integral of the third kind + Y + + + + 8.1.7 + regular modified cylindrical Bessel functions + Y + + + + 8.1.8 + cylindrical Bessel functions (of the first kind) + Y + + + + 8.1.9 + irregular modified cylindrical Bessel functions + Y + + + + 8.1.10 + cylindrical Neumann functions + Y + + + + 8.1.11 + (incomplete) elliptic integral of the first kind + Y + + + + 8.1.12 + (incomplete) elliptic integral of the second kind + Y + + + + 8.1.13 + (incomplete) elliptic integral of the third kind + Y + + + + 8.1.14 + exponential integral + Y + + + + 8.1.15 + Hermite polynomials + Y + + + + 8.1.16 + Laguerre polynomials + Y + + + + 8.1.17 + Legendre polynomials + Y + + + + 8.1.18 + Riemann zeta function + Y + + + + 8.1.19 + spherical Bessel functions (of the first kind) + Y + + + + 8.1.20 + spherical associated Legendre functions + Y + + + + 8.1.21 + spherical Neumann functions + Y + + + + 8.2 + Additions to header <math.h> + Y + + + + + 8.3 + The header <ctgmath> + Partial + Conflicts with C++ 2011 requirements. + + + + 8.4 + The header <tgmath.h> + N + Conflicts with C++ 2011 requirements. + + + +
+ +
Implementation Specific Behavior + + For behaviour which is specified by the 2011 standard, + see C++ 2011 Implementation + Specific Behavior. This section documents behaviour which + is required by IS 29124. + + + + 7.2 [macro.user]/3 /4 The functions declared in + Clause 8 are only declared when + __STDCPP_WANT_MATH_SPEC_FUNCS__ == 1 + (or in C++17 mode, for GCC 7.1 and later). + + + + 8.1.1 [sf.cmath.Lnm]/1 The effect of calling + these functions with n >= 128 or m >= 128 + should be described here. + + + + 8.1.2 [sf.cmath.Plm]/3 The effect of calling + these functions with l >= 128 should be described here. + + + + 8.1.3 [sf.cmath.I]/3 The effect of calling + these functions with nu >= 128 should be described here. + + + + 8.1.8 [sf.cmath.J]/3 The effect of calling + these functions with nu >= 128 should be described here. + + + + 8.1.9 [sf.cmath.K]/3 The effect of calling + these functions with nu >= 128 should be described here. + + + + 8.1.10 [sf.cmath.N]/3 The effect of calling + these functions with nu >= 128 should be described here. + + + + 8.1.15 [sf.cmath.Hn]/3 The effect of calling + these functions with n >= 128 should be described here. + + + + 8.1.16 [sf.cmath.Ln]/3 The effect of calling + these functions with n >= 128 should be described here. + + + + 8.1.17 [sf.cmath.Pl]/3 The effect of calling + these functions with l >= 128 should be described here. + + + + 8.1.19 [sf.cmath.j]/3 The effect of calling + these functions with n >= 128 should be described here. + + + + 8.1.20 [sf.cmath.Ylm]/3 The effect of calling + these functions with l >= 128 should be described here. + + + + 8.1.21 [sf.cmath.n]/3 The effect of calling + these functions with n >= 128 should be described here. + + +
+ +