Skip to content
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

<ciso646> is removed in C++20 #2710

Merged
merged 5 commits into from
May 17, 2022

Conversation

fsb4000
Copy link
Contributor

@fsb4000 fsb4000 commented May 10, 2022

https://en.cppreference.com/w/cpp/header
изображение

<ciso646> wasn't deprecated in C++17, this is why <ciso646> doesn't have a similar warning like <cstdbool> and other have.

#2583 uses STL4034 and STL4035

so this PR is expected to be merged after 2583

llvm-project\libcxx\test\support\test_macros.h has #include <ciso646> . This is why we need #define _SILENCE_CXX20_CISO646_REMOVED_WARNING for P0088R3_variant/test.cpp ,P0220R1_any/test.cpp and P0220R1_optional/test.cpp

https://github.com/llvm/llvm-project/blob/b8d38e8b4fcab071c5c4cb698e154023d06de69e/libcxx/test/support/test_macros.h#L23

@fsb4000 fsb4000 requested a review from a team as a code owner May 10, 2022 13:58
@CaseyCarter CaseyCarter added the enhancement Something can be improved label May 11, 2022
Copy link
Member

@CaseyCarter CaseyCarter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect there is code in the wild building with /std:c++20 /permissive that includes <ciso646> to get the macro definitions of the "alternative tokens" (and, not, etc.) which will be broken by this, but I'm comfortable given there's an escape hatch.

stl/inc/yvals_core.h Show resolved Hide resolved
@StephanTLavavej StephanTLavavej self-assigned this May 11, 2022
@StephanTLavavej StephanTLavavej removed their assignment May 12, 2022
@StephanTLavavej StephanTLavavej self-assigned this May 16, 2022
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

StephanTLavavej added a commit to StephanTLavavej/STL that referenced this pull request May 16, 2022
@StephanTLavavej
Copy link
Member

Merged with main:

  • Adjacent deprecation warnings in <yvals_core.h>. The <ciso646> warning is now STL4036 and STL4037 is the next warning number.
  • Adjacent silencing in P0088R3_variant/test.cpp. Accepted both, sorted the silencing.

@StephanTLavavej StephanTLavavej merged commit 9ca4a29 into microsoft:main May 17, 2022
@StephanTLavavej
Copy link
Member

Thanks for implementing this removal and helping to modernize this part of the ecosystem!

😻 🚀 🧑‍🚀

@fsb4000 fsb4000 deleted the ciso646_is_removed branch May 17, 2022 04:54
fsb4000 added a commit to fsb4000/STL that referenced this pull request Aug 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Something can be improved
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants