C++ 23 Features Supported by Intel® C++ Compiler

ID 764072
Updated 11/17/2023
Version Latest



C++ 23 Features

Following is the status and version of compiler support for C++ 2b Features.

Language Feature Standard # ICX  2022.2 (oneAPI 2022.3) ICX 2023.2 (oneAPI 2023.2) ICX  2024.0 (oneAPI 2024.0)
Literal suffix uz, z for size_t, ssize_t P0330R8 Yes Yes Yes
Make () in lambdas optional in all cases P1102R2 Yes Yes Yes
Simpler implicit move P2266R1 Yes Yes Yes
if consteval P2156R1 Yes Yes Yes
Allow duplicate attributes P1401R5 Yes Yes Yes
Narrowing contextual conversions to bool P2223R2 Yes Yes Yes
Trimming whitespaces before line splicing P2223R2 Yes Yes Yes
Make declaration order layout mandated P1874R4 Yes Yes Yes
C++ identifier syntax using UAX 31 P1949R7 Yes Yes Yes
Mixed string literal concatenation P2201R1 Yes Yes Yes
Deducing this P0847R7 No No No
Change scope of lambda trailing-return-type P2036R3 No Yes Yes
Migration strategies for Change scope of lambda trailing-return-type P2579R0 No Yes Yes
Multidimensional subscript operator P2128R6 Yes Yes Yes
Non-literal variables (and labels and gotos) in constexpr functions P2242R3 Yes Yes Yes
Character encoding of diagnostic text P2246R1 Yes Yes Yes
Character sets and encodings P2314R4 Yes Yes Yes
Consistent character literal encoding P2316R2 Yes Yes Yes
Add support for preprocessing directives elifdef and elifndef P2334R1 Yes Yes Yes
Extend init-statement to allow alias-declaration P2360R0 Yes Yes Yes
auto(x): decay-copy in the language P0849R8 Yes Yes Yes
Attributes on Lambda-Expressions P2173R1 Yes Yes Yes
constexpr for <cmath> and <cstdlib> P0533R9 No No No
Type trait to determine if a reference binds to a temporary P2255R2 Partial Partial Partial
The Equality Operator You Are Looking For P2468R2 No  Yes Yes
De-deprecating volatile compound operations P2468R2 No Yes Yes
Support for #warning P2437R1 No Yes Yes
Remove non-encodable wide character literals and multicharacter wide character literals P2362R3 No Yes Yes
Labels at the end of compound statements P2324R2 No Yes Yes
Delimited escape sequences P2290R3 No Yes Yes
Named universal character escapes P2071R2 No Yes Yes
Relaxing some constexpr restrictions P2448R2 No No Partial
Using unknown pointers and references in constant expressions P2280R4 No No No
static operator() P1169R4 No Yes Yes
Extended floating-point types and standard names P1467R9 No No No
Class template argument deduction from inherited constructors P2582R1 No No No
Portable assumptions P1774R8 No No No
Support for UTF-8 as a portable source file encoding P2295R6 No Yes Yes
char8_t Compatibility and Portability Fix P2513R3 No Yes Yes
Relax requirements on wchar_t to match existing practices P2460R2 No Yes Yes
Explicit lifetime management P2590R2 No No No
static operator[] P2589R1 No  Yes Yes
Permitting static constexpr variables in constexpr functions (DR) P2647R1 No Yes Yes
consteval needs to propagate up (DR) P2564R3 No No Yes
Referencing The Unicode Standard P2736R2 Yes Yes Yes

Other relevant articles:

  1. Intel Compiler C++11 support status
  2. Intel Compiler C++14 support status
  3. Intel Compiler C++17 support status
  4. Intel Compiler C++20 support status