-
Notifications
You must be signed in to change notification settings - Fork 364
Closed
Description
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 | YES | v2.1.3 | #2749 |
Delimited escape sequences | P2290R3 | YES | v.2.1.3 | #2744 |
Named universal character escapes | P2071R2 | YES | v.2.1.3 | #2744 |
Non-literal variables(and labels and gotos) in constexpr functions | P2242R3 | 3) | ||
Consistent character literal encoding | P2316R2 | 3) | ||
Character sets and encodings | P2314R4 | 3) | ||
Remove non-encodable wide character literals and multicharacter wide character literals | P2362R3 | 3) | ||
DR: C++ Identifier Syntax using Unicode Standard Annex 31 | P1949R7 | 3) | ||
Removing mixed wide string literal concatenation | P2201R1 | 3) |
1) already supported in previous versions
2) does not lead to a change in grammar
3) test of the current behavior necessary