From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 697573858C74; Tue, 1 Feb 2022 12:41:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 697573858C74 To: gcc-cvs-wwwdocs@gcc.gnu.org Subject: gcc-wwwdocs branch master updated. 9f6040a13e7c552a8c1c65352b702dc5d71b369e X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 829c505d5214d300cd4d5c67bdd6041f7128e3fc X-Git-Newrev: 9f6040a13e7c552a8c1c65352b702dc5d71b369e Message-Id: <20220201124118.697573858C74@sourceware.org> Date: Tue, 1 Feb 2022 12:41:18 +0000 (GMT) From: Jonathan Wakely X-BeenThere: gcc-cvs-wwwdocs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs-wwwdocs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Feb 2022 12:41:18 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gcc-wwwdocs". The branch, master has been updated via 9f6040a13e7c552a8c1c65352b702dc5d71b369e (commit) via 7193a0fb5d1b164fa676beb35df13cc603a6cf67 (commit) via 72dc5378360e4e54280414d4f4b76400f7f7abcd (commit) from 829c505d5214d300cd4d5c67bdd6041f7128e3fc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9f6040a13e7c552a8c1c65352b702dc5d71b369e Author: Jonathan Wakely Date: Tue Feb 1 12:40:46 2022 +0000 Document C++20 and C++23 library additions diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index c6baee75..2719b9d5 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -305,6 +305,8 @@ a work-in-progress.

  • std::vector, std::basic_string, std::optional, and std::variant can be used in constexpr functions.
  • +
  • std::make_shared for arrays with default initialization, + and std::atomic<std::shared_ptr<T>>.
  • Layout-compatibility and pointer-interconvertibility traits.
  • @@ -315,6 +317,10 @@ a work-in-progress.

  • <spanstream>
  • std::invoke_r
  • std::basic_string::resize_and_overwrite
  • +
  • <stacktrace> + (not built by default, requires linking to an extra library).
  • +
  • <stdatomic.h>
  • +
  • constexpr std::type_info::operator==
  • commit 7193a0fb5d1b164fa676beb35df13cc603a6cf67 Author: Jonathan Wakely Date: Tue Feb 1 12:38:59 2022 +0000 Add C++ "porting to" notes diff --git a/htdocs/gcc-12/porting_to.html b/htdocs/gcc-12/porting_to.html index 42179c11..86d99723 100644 --- a/htdocs/gcc-12/porting_to.html +++ b/htdocs/gcc-12/porting_to.html @@ -50,9 +50,54 @@ is no longer accepted and you need to add a cast to it like: } - + +

    Header dependency changes

    +

    Some C++ Standard Library headers have been changed to no longer include +other headers that were being used internally by the library. +As such, C++ programs that used standard library components without +including the right headers will no longer compile. +

    +

    +The following headers are used less widely in libstdc++ and may need to +be included explicitly when compiled with GCC 12: +

    +
      +
    • <memory> + (for std::shared_ptr, std::unique_ptr etc.) +
    • +
    • <iterator> + (for std::istream_iterator, std::istreambuf_iterator) +
    • +
    • <algorithm> + (for std::for_each, std::copy etc.) +
    • +
    • <utility> + (for std::pair) +
    • +
    • <array> + (for std::array) +
    • +
    • <atomic> + (for std::atomic) +
    • +
    + +

    C++ Standard Library deprecations

    +

    +Warnings have been added for use of C++ standard library features that +are deprecated (or no longer present at all) in recent C++ standards. +Where possible, the warning suggests a modern replacement for the +deprecated feature. +

    +

    +The std::iterator base class can usually be replaced by defining +the same necessary typedefs directly in your iterator class. +The std::unary_function and std::binary_function +base classes can often be completely removed, or the typedefs for +result_type and argument types can be defined directly in your +class. +