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

C++23 support #2536

Open
guwirth opened this issue May 30, 2023 · 0 comments
Open

C++23 support #2536

guwirth opened this issue May 30, 2023 · 0 comments

Comments

@guwirth
Copy link
Collaborator

guwirth commented May 30, 2023

Support latest C++ standard C++23:

does not lead to a change in grammar

C++23 feature Paper(s) cxx support
Narrowing contextual conversions in static_assert and constexpr if P1401R5 YES
Removing Garbage Collection Support P2186R2 YES
Make declaration order layout mandated P1847R4 YES
Change scope of lambda trailing-return-type P2036R3 YES
Relaxing some constexpr restrictions P2448R2 YES
Simpler implicit move P2266R3 YES
Class template argument deduction from inherited constructors P2582R1 YES
DR20: consteval needs to propagate up P2564R0 YES
Extending the lifetime of temporaries in range-based for loop initializer P2718R0 YES
DR20: Adjusting the value of feature-test macro __cpp_concepts P2493R0 YES
DR98: Relax requirements on wchar_t to match existing practices P2460R2 YES
DR: Using unknown pointers and references in constant expressions P2280R4 YES
DR20: The Equality Operator You Are Looking For P2468R2 YES
DR20: char8_t Compatibility and Portability Fix P2513R4 YES
DR: Clarify reportingof diagnostic directives and allow static_assert of non-value-dependent expressions in a template context CWG2518 YES

changes in grammar

C++23 feature Paper(s) cxx support cxx version pull request
#warning P2437R1 YES v2.0 1) #2727
Support for UTF-8 as a portable source file encoding P2295R6 YES v2.0.2 1) #2143
#elifdef and #elifndef P2334R1 YES v2.1.0 #2411 #2727
if consteval P1938R3 YES v2.1.3 #2728
Explicit object parameter (deducing this) P0847R7 YES v2.1.3 #2729
Extend init-statement (of for loop) to allow alias-declaration P2360R0 YES v2.1.3 #2734
Multidimensional subscript operator P2128R6 YES v2.1.3 #2733
Attribute [[assume]] P1774R8 YES v2.1.3 #2732
Literal suffix for (signed) size_t P0330R8 YES v2.1.3 #2742
Make () more optional for lambdas P1102R2 YES v2.1.3 #2736
auto(x) and auto{x} P0849R8 YES v2.1.3 #2740
Attributes on lambdas P2173R1 YES v2.1.3 #2736
Labels at the end of compound statements P2324R2 YES v.2.1.3 #2737
static operator() P1169R4 YES v2.1.3 #2740
Requirements for optional extended floating-point types P1467R9 YES v2.1.3 #2743
static operator[] P2589R0 YES v2.1.3 #2740
Permitting static constexpr variables in constexpr functions= P2647R1 YES v2.1.3 #2740
DR20: Meaningful exports P2615R0 YES v2.1.3 #2738
DR11: Allow duplicate attributes P2156R1 YES v2.1.3 #2740
Trimming whitespaces before line splicing P2223R2 no todo
Non-literal variables(and labels and gotos) in constexpr functions P2242R3 no todo
Consistent character literal encoding P2316R2 no todo
Character sets and encodings P2314R4 no todo
Delimited escape sequences P2290R3 no todo
Named universal character escapes P2071R2 no todo
Remove non-encodable wide character literals and multicharacter wide character literals P2362R3 no todo
DR: C++ Identifier Syntax using Unicode Standard Annex 31 P1949R7 no todo
Removing mixed wide string literal concatenation P2201R1 no todo 3)
1) already supported in previous versions
2) does not lead to a change in grammar
3) test of the current behavior necessary
This was referenced Feb 8, 2023
@guwirth guwirth linked a pull request Aug 28, 2024 that will close this issue
@guwirth guwirth removed a link to a pull request Aug 28, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 28, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 28, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 29, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 29, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 29, 2024
- Extend init-statement (of for loop) to allow alias-declaration [P2360R0](https://wg21.link/P2360R0)
- linked SonarOpenCommunity#2536
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Aug 30, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Sep 2, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Sep 2, 2024
- DR20: Meaningful exports [P2615R0](https://wg21.link/P2615R0)
- linked SonarOpenCommunity#2536
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Sep 2, 2024
- add final grammar changes for C++23
- auto(x) and auto{x} [P0849R8](https://wg21.link/P0849R8)
- duplicate attributes [P2156R1](https://wg21.link/P2156R1)
- static constexpr [P2647R1](https://wg21.link/P2647R1)
- static operator [P2589R0](https://wg21.link/P2589R0) [P1169R4](https://wg21.link/P1169R4)
- linked SonarOpenCommunity#2536
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Sep 3, 2024
guwirth added a commit to guwirth/sonar-cxx that referenced this issue Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant