diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 579910dd199f..fedd4da3e907 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,15 @@ +2015-12-08 Jonathan Wakely + + * doc/xml/manual/abi.xml: Backport documentation improvements from + mainline. + * doc/xml/manual/configure.xml: Likewise. + * doc/xml/manual/diagnostics.xml: Likewise. + * doc/xml/manual/extensions.xml: Likewise. + * doc/xml/manual/status_cxx2011.xml: Likewise. + * doc/xml/manual/status_cxx2014.xml: Likewise. + * doc/xml/manual/using.xml: Likewise. + * doc/html/*: Regenerate. + 2015-12-04 Jonathan Wakely PR libstdc++/56383 diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index bd2c58e37149..d2150e5c491f 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++ 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
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++ 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. Standard Contents
4. Support diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index ec786b930f84..e7de3a52647e 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -38,7 +38,7 @@ documented here.

Putting all of these ideas together results in the C++ Standard -library ABI, which is the compilation of a given library API by a +Library ABI, which is the compilation of a given library API by a given compiler ABI. In a nutshell:

diff --git a/libstdc++-v3/doc/html/manual/concept_checking.html b/libstdc++-v3/doc/html/manual/concept_checking.html index 883eb5a7721e..df7f22f7fcdc 100644 --- a/libstdc++-v3/doc/html/manual/concept_checking.html +++ b/libstdc++-v3/doc/html/manual/concept_checking.html @@ -35,8 +35,9 @@ -D_GLIBCXX_CONCEPT_CHECKS.

Please note that the checks are based on the requirements in the original - C++ standard, some of which have changed in the new C++11 revision. - Additionally, some correct code might be rejected by the concept checks, + C++ standard, many of which were relaxed in the C++11 standard and so valid + C++11 code may be incorrectly rejected by the concept checks. Additionally, + some correct C++03 code might be rejected by the concept checks, for example template argument types may need to be complete when used in a template definition, rather than at the point of instantiation. There are no plans to address these shortcomings. diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html index 96f40a62ed09..626534c08382 100644 --- a/libstdc++-v3/doc/html/manual/configure.html +++ b/libstdc++-v3/doc/html/manual/configure.html @@ -174,10 +174,12 @@ Mostly useful together with shared memory allocators, see PR libstdc++/16612 for details.

--enable-concept-checks

This turns on additional compile-time checks for instantiated - library templates, in the form of specialized templates, - described here. They + library templates, in the form of specialized templates described in + the Concept + Checking section. They can help users discover when they break the rules of the STL, before - their programs run. + their programs run. These checks are based on C++03 rules and some of + them are not compatible with correct C++11 code.

--enable-symvers[=style]

In 3.1 and later, tries to turn on symbol versioning in the shared library (if a shared library has been requested). Values for 'style' that are currently supported @@ -236,9 +238,10 @@

--with-default-libstdcxx-abi=OPTION

Set the default value for the _GLIBCXX_USE_CXX11_ABI macro (see Macros). - The default is OPTION=c++11 which sets the macro to + The default is OPTION=new which sets the macro to 1, - use OPTION=c++98 to set it to 0. + use OPTION=gcc4-compatible to set it to + 0. This option does not change the library ABI.

--enable-vtable-verify[default]

Use -fvtable-verify=std to compile the C++ runtime with instrumentation for vtable verification. All virtual @@ -247,4 +250,8 @@ iostream, and others. Disabling means that the C++ runtime is compiled without support for vtable verification. By default, this option is off. -

\ No newline at end of file +

--enable-libstdcxx-filesystem-ts[default]

Build libstdc++fs.a as well + as the usual libstdc++ and libsupc++ libraries. This is enabled by + default on select POSIX targets where it is known to work and disabled + otherwise. +

\ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/ext_compile_checks.html b/libstdc++-v3/doc/html/manual/ext_compile_checks.html index da4723311e23..227bd25d5410 100644 --- a/libstdc++-v3/doc/html/manual/ext_compile_checks.html +++ b/libstdc++-v3/doc/html/manual/ext_compile_checks.html @@ -29,7 +29,8 @@ They can be enabled at configure time with --enable-concept-checks. You can enable them on a per-translation-unit basis with - #define _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher + #define + _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher (or with #define _GLIBCPP_CONCEPT_CHECKS for versions 3.1, 3.2 and 3.3).

Please note that the concept checks only validate the requirements diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index b6f34fa29aaa..3b13da483aaf 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++ 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
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++ 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. Standard Contents
4. Support diff --git a/libstdc++-v3/doc/html/manual/intro.html b/libstdc++-v3/doc/html/manual/intro.html index ae8ce8fac9d3..0c2739b95da6 100644 --- a/libstdc++-v3/doc/html/manual/intro.html +++ b/libstdc++-v3/doc/html/manual/intro.html @@ -5,4 +5,4 @@ Prev The GNU C++ Library Manual Next
\ 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 40e3323c5559..f9e240e46de7 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -148,8 +148,8 @@ This table is based on the table of contents of ISO/IEC JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11 Final Draft International Standard, Standard for Programming Language C++

-In this implementation -std=gnu++11 or --std=c++11 flags must be used to enable language +In this implementation the -std=gnu++11 or +-std=c++11 flag must be used to enable language and library features. See dialect options. The pre-defined symbol @@ -171,10 +171,8 @@ particular release. General utilities 20.1General  20.2Utility components  20.2.1OperatorsY 20.2.2SwapY 20.2.3forward and move helpersY 20.2.4Function template declvalY 20.3Pairs  20.3.1In general  20.3.2Class template pairY 20.3.3Specialized algorithmsY 20.3.4Tuple-like access to pairY 20.3.5Piecewise constructionY 20.4Tuples  20.4.1In general  20.4.2Class template tuple  20.4.2.1ConstructionY 20.4.2.2AssignmentY 20.4.2.3SwapY 20.4.2.4Tuple creation functionsY 20.4.2.5Tuple helper classesY 20.4.2.6Element accessY 20.4.2.7Relational operatorsY 20.4.2.8Tuple traitsY 20.4.2.9Tuple specialized algorithmsY 20.5Class template bitsetY 20.5.1bitset constructorsY 20.5.2bitset membersY 20.5.3bitset hash supportY 20.5.4bitset operatorsY 20.6Memory  20.6.1In general  20.6.2Header <memory> synopsis  20.6.3Pointer traitsY 20.6.4Pointer safetyPartial 20.6.5AlignY 20.6.6Allocator argument tagY 20.6.7uses_allocatorY 20.6.8Allocator traitsY 20.6.9The default allocatorY 20.6.10Raw storage iteratorY 20.6.11Temporary buffersY 20.6.12Specialized algorithms  20.6.12.1addressofY 20.6.12.2uninitialized_copyY 20.6.12.3uninitialized_fillY 20.6.12.4uninitialized_fill_nY 20.6.13C libraryY 20.7Smart pointers  20.7.1Class template unique_ptrY 20.7.2Shared-ownership pointersY 20.7.2.1Class bad_weak_ptrY 20.7.2.2Class template shared_ptrY -

Uses code from 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 accessY 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_fnY 20.8.11Polymorphic function wrappers  20.8.11.1Class bad_function_callY 20.8.11.2Class template functionPartialMissing allocator support20.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 propertiesY 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 durationY 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 adaptorY 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_index21 @@ -299,7 +297,10 @@ particular release. 30.2.3 [thread.req.native]/1 native_handle_type and native_handle are provided. The handle types - are defined in terms of the Gthreads abstraction layer. + are defined in terms of the Gthreads abstraction layer, although this + is subject to change at any time. Any use of + native_handle is inherently non-portable and + not guaranteed to work between major releases of GCC.

  • thread: The native handle type is a typedef for __gthread_t i.e. pthread_t when GCC is configured with the posix thread @@ -326,8 +327,8 @@ particular release. overloaded operators to support bitmask operations. There are no additional bitmask elements defined.

C++ 2014

-In this implementation -std=gnu++1y or --std=c++1y flags must be used to enable language +In this implementation the -std=gnu++14 or +-std=c++14 flag must be used to enable language and library features. See dialect options. The pre-defined symbol @@ -392,7 +393,7 @@ not in any particular release. N3659 - Shared Locking in C++YNeed tests + Shared Locking in C++Y  N3421 @@ -452,11 +453,15 @@ not in any particular release. N3932 - Variable Templates For Type TraitsYLibrary Fundamentals TS - - N3940 + Variable Templates For Type TraitsYLibrary Fundamentals TS + + N4100 - File SystemWIP 


C++ TR1

+ File SystemY + Link with + + -lstdc++fs +


C++ TR1

This table is based on the table of contents of ISO/IEC DTR 19768 Doc No: N1836=05-0096 Date: 2005-06-24 Draft Technical Report on C++ Library Extensions diff --git a/libstdc++-v3/doc/html/manual/using.html b/libstdc++-v3/doc/html/manual/using.html index ccc870f077db..3b7aed72ece7 100644 --- a/libstdc++-v3/doc/html/manual/using.html +++ b/libstdc++-v3/doc/html/manual/using.html @@ -2,14 +2,19 @@ Chapter 3. Using

Chapter 3. Using

Command Options

Next


Chapter 3. Using

Command Options

The set of features available in the GNU C++ library is shaped by several GCC Command Options. Options that impact libstdc++ are 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 + The standard library conforms to the dialect of C++ specified by the + -std option passed to the compiler. + By default, g++ is equivalent to + g++ -std=gnu++98 for GCC 5 and older releases. +

Table 3.1. C++ Command Options

Option FlagsDescription
-std=c++98 or -std=c++03 + Use the 1998 ISO C++ standard plus amendments.
-std=gnu++98 or -std=gnu++03 + As directly above, with GNU extensions.
-std=c++11Use the 2011 ISO C++ standard.
-std=gnu++11As directly above, with GNU extensions.
-std=c++14Use the 2014 ISO C++ standard.
-std=gnu++14As directly above, with GNU extensions.
-fexceptionsSee exception-free dialect
-frttiAs above, but RTTI-free dialect.
-pthread or -pthreadsFor ISO C++11 <thread>, <future>, <mutex>, @@ -17,4 +22,7 @@
-latomicLinking to libatomic is required for some uses of ISO C++11 <atomic>. +
-lstdc++fsLinking to libstdc++fs + is required for use of the Filesystem library extensions in + <experimental/filesystem>.
-fopenmpFor parallel mode.

\ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html b/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html index ac46c7e19f60..8defacd1e3b0 100644 --- a/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html +++ b/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html @@ -102,4 +102,21 @@ A quick read of the relevant part of the GCC also installed, for use with Libtool. If you use Libtool to create your executables, these details are taken care of for you. +

Experimental Library Extensions

+ GCC 5.3 includes an implementation of the Filesystem library defined + by the technical specification ISO/IEC TS 18822:2015. Because this is + an experimental library extension, not part of the C++ standard, it + is implemented in a separate library, + libstdc++fs.a, and there is + no shared library for it. To use the library you should include + <experimental/filesystem> + and link with -lstdc++fs. The library implementation + is incomplete on non-POSIX platforms, specifically Windows support is + rudimentary. +

+ Due to the experimental nature of the Filesystem library the usual + guarantees about ABI stability and backwards compatibility do not apply + to it. There is no guarantee that the components in any + <experimental/xxx> + header will remain compatible between different GCC releases.

\ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/using_headers.html b/libstdc++-v3/doc/html/manual/using_headers.html index 7e4d5be91360..de90e1217149 100644 --- a/libstdc++-v3/doc/html/manual/using_headers.html +++ b/libstdc++-v3/doc/html/manual/using_headers.html @@ -74,12 +74,15 @@ of std::sinf, std::sin, and std::sinl.

Precompiled Headers

There are three base header files that are provided. They can be used to precompile the standard headers and extensions into binary -files that may the be used to speed compiles that use these headers. +files that may then be used to speed up compilations that use these headers.

  • stdc++.h

    Includes all standard headers. Actual content varies depending on -language dialect. +language dialect.

  • stdtr1c++.h

    Includes all of <stdc++.h>, and adds all the TR1 headers. -

  • extc++.h

    Includes all of <stdtr1c++.h>, and adds all the Extension headers. -

How to construct a .gch file from one of these base header files.

First, find the include directory for the compiler. One way to do +

  • extc++.h

    Includes all of the Extension headers +(and in C++98 mode also adds all the TR1 headers by including all of +<stdtr1c++.h>). +

  • To construct a .gch file from one of these base header files, +first find the include directory for the compiler. One way to do this is:

     g++ -v hello.cc
     
    diff --git a/libstdc++-v3/doc/html/manual/using_namespaces.html b/libstdc++-v3/doc/html/manual/using_namespaces.html
    index a7dd0b53c0e8..0fe9ce333994 100644
    --- a/libstdc++-v3/doc/html/manual/using_namespaces.html
    +++ b/libstdc++-v3/doc/html/manual/using_namespaces.html
    @@ -2,8 +2,8 @@
     Namespaces

    Namespaces

    Available Namespaces

    There are three main namespaces.

    • std

      The ISO C++ standards specify that "all library entities are defined within namespace std." This includes namespaces nested -within namespace std, such as namespace -std::tr1. +within namespace std, such as namespace +std::chrono.

    • abi

      Specified by the C++ ABI. This ABI specifies a number of type and function APIs supplemental to those required by the ISO C++ Standard, but necessary for interoperability. diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml index b399f7118833..a2ed57b3f69a 100644 --- a/libstdc++-v3/doc/xml/manual/abi.xml +++ b/libstdc++-v3/doc/xml/manual/abi.xml @@ -66,7 +66,7 @@ Putting all of these ideas together results in the C++ Standard -library ABI, which is the compilation of a given library API by a +Library ABI, which is the compilation of a given library API by a given compiler ABI. In a nutshell: diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index f6a5551b9ec0..7b09d01b541d 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -297,10 +297,12 @@ --enable-concept-checks This turns on additional compile-time checks for instantiated - library templates, in the form of specialized templates, - described here. They + library templates, in the form of specialized templates described in + the Concept + Checking section. They can help users discover when they break the rules of the STL, before - their programs run. + their programs run. These checks are based on C++03 rules and some of + them are not compatible with correct C++11 code. @@ -418,6 +420,15 @@ + --enable-libstdcxx-filesystem-ts[default] + + Build libstdc++fs.a as well + as the usual libstdc++ and libsupc++ libraries. This is enabled by + default on select POSIX targets where it is known to work and disabled + otherwise. + + + diff --git a/libstdc++-v3/doc/xml/manual/diagnostics.xml b/libstdc++-v3/doc/xml/manual/diagnostics.xml index 99206e9fde9c..88ed2e28057f 100644 --- a/libstdc++-v3/doc/xml/manual/diagnostics.xml +++ b/libstdc++-v3/doc/xml/manual/diagnostics.xml @@ -114,8 +114,9 @@ Please note that the checks are based on the requirements in the original - C++ standard, some of which have changed in the new C++11 revision. - Additionally, some correct code might be rejected by the concept checks, + C++ standard, many of which were relaxed in the C++11 standard and so valid + C++11 code may be incorrectly rejected by the concept checks. Additionally, + some correct C++03 code might be rejected by the concept checks, for example template argument types may need to be complete when used in a template definition, rather than at the point of instantiation. There are no plans to address these shortcomings. diff --git a/libstdc++-v3/doc/xml/manual/extensions.xml b/libstdc++-v3/doc/xml/manual/extensions.xml index c4120c9b06f2..41b1a801325d 100644 --- a/libstdc++-v3/doc/xml/manual/extensions.xml +++ b/libstdc++-v3/doc/xml/manual/extensions.xml @@ -82,7 +82,8 @@ extensions, be aware of two things: They can be enabled at configure time with --enable-concept-checks. You can enable them on a per-translation-unit basis with - #define _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher + #define + _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher (or with #define _GLIBCPP_CONCEPT_CHECKS for versions 3.1, 3.2 and 3.3). diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 965df13a2343..16ea8c4f24b8 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -17,8 +17,8 @@ Final Draft International Standard, Standard for Programming Language C++ -In this implementation -std=gnu++11 or --std=c++11 flags must be used to enable language +In this implementation the -std=gnu++11 or +-std=c++11 flag must be used to enable language and library features. See dialect options. The pre-defined symbol @@ -642,10 +642,8 @@ particular release. Class template shared_ptr Y - Uses code from boost::shared_ptr. - @@ -2673,7 +2671,10 @@ particular release. 30.2.3 [thread.req.native]/1 native_handle_type and native_handle are provided. The handle types - are defined in terms of the Gthreads abstraction layer. + are defined in terms of the Gthreads abstraction layer, although this + is subject to change at any time. Any use of + native_handle is inherently non-portable and + not guaranteed to work between major releases of GCC. thread: The native handle type is a typedef for __gthread_t i.e. pthread_t diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml index fc3299584fb6..6f1fbe5664a1 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2014.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2014.xml @@ -10,8 +10,8 @@ -In this implementation -std=gnu++1y or --std=c++1y flags must be used to enable language +In this implementation the -std=gnu++14 or +-std=c++14 flag must be used to enable language and library features. See dialect options. The pre-defined symbol @@ -196,7 +196,7 @@ not in any particular release. Shared Locking in C++ Y - Need tests + @@ -395,15 +395,18 @@ not in any particular release. - - - N3940 + + N4100 File System - WIP - + Y + + Link with + + + diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml index ba90666f0cc5..6228a865dde7 100644 --- a/libstdc++-v3/doc/xml/manual/using.xml +++ b/libstdc++-v3/doc/xml/manual/using.xml @@ -13,7 +13,10 @@ - By default, g++ is equivalent to g++ -std=gnu++98. The standard library also defaults to this dialect. + The standard library conforms to the dialect of C++ specified by the + option passed to the compiler. + By default, g++ is equivalent to + g++ -std=gnu++98 for GCC 5 and older releases. @@ -32,12 +35,14 @@ - -std=c++98 + -std=c++98 or -std=c++03 + Use the 1998 ISO C++ standard plus amendments. - -std=gnu++98 + -std=gnu++98 or -std=gnu++03 + As directly above, with GNU extensions. @@ -51,6 +56,16 @@ As directly above, with GNU extensions. + + -std=c++14 + Use the 2014 ISO C++ standard. + + + + -std=gnu++14 + As directly above, with GNU extensions. + + -fexceptions See exception-free dialect @@ -79,6 +94,14 @@ + + -lstdc++fs + Linking to libstdc++fs + is required for use of the Filesystem library extensions in + <experimental/filesystem>. + + + -fopenmp For parallel mode. @@ -703,7 +726,7 @@ and std::sinl. There are three base header files that are provided. They can be used to precompile the standard headers and extensions into binary -files that may the be used to speed compiles that use these headers. +files that may then be used to speed up compilations that use these headers. @@ -711,7 +734,7 @@ files that may the be used to speed compiles that use these headers. stdc++.h Includes all standard headers. Actual content varies depending on -language dialect. +language dialect. @@ -722,13 +745,14 @@ language dialect. extc++.h -Includes all of <stdtr1c++.h>, and adds all the Extension headers. +Includes all of the Extension headers +(and in C++98 mode also adds all the TR1 headers by including all of +<stdtr1c++.h>). -How to construct a .gch file from one of these base header files. - -First, find the include directory for the compiler. One way to do +To construct a .gch file from one of these base header files, +first find the include directory for the compiler. One way to do this is: @@ -1027,8 +1051,8 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe std The ISO C++ standards specify that "all library entities are defined within namespace std." This includes namespaces nested -within namespace std, such as namespace -std::tr1. +within namespace std, such as namespace +std::chrono. abi @@ -1333,8 +1357,31 @@ A quick read of the relevant part of the GCC you. - +
      Experimental Library Extensions + + + GCC 5.3 includes an implementation of the Filesystem library defined + by the technical specification ISO/IEC TS 18822:2015. Because this is + an experimental library extension, not part of the C++ standard, it + is implemented in a separate library, + libstdc++fs.a, and there is + no shared library for it. To use the library you should include + <experimental/filesystem> + and link with . The library implementation + is incomplete on non-POSIX platforms, specifically Windows support is + rudimentary. + + + + Due to the experimental nature of the Filesystem library the usual + guarantees about ABI stability and backwards compatibility do not apply + to it. There is no guarantee that the components in any + <experimental/xxx> + header will remain compatible between different GCC releases. + +
      +
      Concurrency