Skip to content

P0619R4: Reviewing Deprecated Facilities of C++17 for C++20 #99985

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
cjdb opened this issue Jul 22, 2024 · 3 comments · Fixed by #111615
Closed

P0619R4: Reviewing Deprecated Facilities of C++17 for C++20 #99985

cjdb opened this issue Jul 22, 2024 · 3 comments · Fixed by #111615
Labels
c++20 libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. metabug Issue to collect references to a group of similar or related issues. wg21 paper Issues representing the implementation of a WG21 paper

Comments

@cjdb
Copy link
Contributor

cjdb commented Jul 22, 2024

Link: https://wg21.link/p0619r4

BEGIN-RST-NOTES
Removed headers are still provided as an extension, but with deprecation warnings.
END-RST-NOTES
@cjdb cjdb added libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. c++20 labels Jul 22, 2024
@llvmbot
Copy link
Member

llvmbot commented Jul 22, 2024

@llvm/issue-subscribers-c-20

Author: Christopher Di Bella (cjdb)

The [status page](https://libcxx.llvm.org/Status/Cxx20.html#note-p0619) notes that

> P0619: Only sections D.8, D.9, D.10 and D.13 are implemented. Sections D.4, D.7, D.11, and D.12 remain undone.

@frederick-vs-ja
Copy link
Contributor

frederick-vs-ja commented Jul 24, 2024

Sorry, something went wrong.

@EugeneZelenko EugeneZelenko added the metabug Issue to collect references to a group of similar or related issues. label Jul 24, 2024
@ldionne ldionne added the wg21 paper Issues representing the implementation of a WG21 paper label Jul 30, 2024
@ldionne ldionne changed the title Complete 'P0619R4 Reviewing Deprecated Facilities of C++17 for C++20' P0619R4: Reviewing Deprecated Facilities of C++17 for C++20 Aug 1, 2024
@frederick-vs-ja
Copy link
Contributor

frederick-vs-ja commented Aug 15, 2024

It seems that <cstdalign> is undesired at all per #37759. But why are other deprecated & removed headers provided?

@ldionne ldionne moved this from Todo to Partial in libc++ Standards Conformance Aug 21, 2024
ldionne pushed a commit that referenced this issue Aug 27, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Works towards P0619R4/#99985.

- std::uncaught_exception was not previously deprecated. This patch
  deprecates it since C++17 as per N4259. std::uncaught_exceptions is
  used instead as libc++ unconditionally provides this function.

- _LIBCPP_ENABLE_CXX20_REMOVED_UNCAUGHT_EXCEPTION restores
  std::uncaught_exception.

- As a drive-by, this patch updates the C++20 status page to 
  explain that D.11 is already done, since it was done in 
  578d09c.
ldionne pushed a commit that referenced this issue Sep 16, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…0914)

Works towards P0619R4 / #99985.

The use of `std::get_temporary_buffer` and `std::return_temporary_buffer`
are replaced with `unique_ptr`-based RAII buffer holder.

Escape hatches:
- `_LIBCPP_ENABLE_CXX20_REMOVED_TEMPORARY_BUFFER` restores
`std::get_temporary_buffer` and `std::return_temporary_buffer`.

Drive-by changes:
- In `<syncstream>`, states that `get_temporary_buffer` is now removed,
because `<syncstream>` is added in C++20.
frederick-vs-ja added a commit that referenced this issue Oct 30, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
This PR deprecates `<ccomplex>`, `<cstdbool>`, `<ctgmath>`, and
`<ciso646>` in C++17 and "removes" them in C++20 by special deprecation
warnings.

`<cstdalign>` is previously missing. This PR also tries to add them, and
then deprecates and "removes" `<cstdalign>`.

Papers:
- https://wg21.link/P0063R3
- https://wg21.link/P0619R4

Closes #99985.

---------

Co-authored-by: Louis Dionne <[email protected]>
NoumanAmir657 pushed a commit to NoumanAmir657/llvm-project that referenced this issue Nov 4, 2024
This PR deprecates `<ccomplex>`, `<cstdbool>`, `<ctgmath>`, and
`<ciso646>` in C++17 and "removes" them in C++20 by special deprecation
warnings.

`<cstdalign>` is previously missing. This PR also tries to add them, and
then deprecates and "removes" `<cstdalign>`.

Papers:
- https://wg21.link/P0063R3
- https://wg21.link/P0619R4

Closes llvm#99985.

---------

Co-authored-by: Louis Dionne <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++20 libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. metabug Issue to collect references to a group of similar or related issues. wg21 paper Issues representing the implementation of a WG21 paper
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants