ct initialization ](/w/cpp/language/direct_initialization "cpp/language/direct initialization") |  201902L  |  (C++20)  |  [ P0960R3 ](https://wg21.link/P0960R3)  
` __cpp_alias_templates ` |  [ Alias templates ](/w/cpp/language/type_alias "cpp/language/type alias") |  200704L  |  (C++11)  |  [ N2258 ](https://wg21.link/N2258)  
` __cpp_aligned_new ` |  [ Dynamic memory allocation for over-aligned data ](/w/cpp/memory/new/align_val_t "cpp/memory/new/align val t") |  201606L  |  (C++17)  |  [ P0035R4 ](https://wg21.link/P0035R4)  
` __cpp_attributes ` |  [ Attributes ](/w/cpp/language/attributes "cpp/language/attributes") |  200809L  |  (C++11)  |  [ N2761 ](https://wg21.link/N2761)  
` __cpp_auto_cast ` |  [ auto  (  x  )  and  auto  {  x  }  ](/w/cpp/language/explicit_cast "cpp/language/explicit cast") |  202110L  |  (C++23)  |  [ P0849R8 ](https://wg21.link/P0849R8)  
` __cpp_binary_literals ` |  [ Binary literals ](/w/cpp/language/integer_literal "cpp/language/integer literal") |  201304L  |  (C++14)  |  [ N3472 ](https://wg21.link/N3472)  
` __cpp_capture_star_this ` |  [ Lambda capture of *this by value as [=,*this] ](/w/cpp/language/lambda#Lambda_capture "cpp/language/lambda") |  201603L  |  (C++17)  |  [ P0018R3 ](https://wg21.link/P0018R3)  
` __cpp_char8_t ` |  [ ` char8_t ` ](/w/cpp/keyword/char8_t "cpp/keyword/char8 t") |  201811L  |  (C++20)  |  [ P0482R6 ](https://wg21.link/P0482R6)  
char8_t  compatibility and portability fix (allow [ initialization of (unsigned) char arrays ](/w/cpp/language/aggregate_initialization#Character_arrays "cpp/language/aggregate initialization") from [ UTF-8 string literals ](/w/cpp/language/string_literal "cpp/language/string literal") )  |  202207L  |  (C++20)    
(DR)  |  [ P2513R4 ](https://wg21.link/P2513R4)  
` __cpp_concepts ` |  [ Concepts ](/w/cpp/language/constraints "cpp/language/constraints") |  201907L  |  (C++20)  |  [ P0734R0 ](https://wg21.link/P0734R0)   
[ P1084R2 ](https://wg21.link/P1084R2)  
[ P1452R2 ](https://wg21.link/P1452R2)  
Conditional trivial special member functions  |  202002L  |  (C++20)  |  [ P0848R3 ](https://wg21.link/P0848R3)   
[ P2493R0 ](https://wg21.link/P2493R0)  
` __cpp_conditional_explicit ` |  [ ` explicit(bool) ` ](/w/cpp/language/explicit "cpp/language/explicit") |  201806L  |  (C++20)  |  [ P0892R2 ](https://wg21.link/P0892R2)  
` __cpp_consteval ` |  [ Immediate functions ](/w/cpp/language/consteval "cpp/language/consteval") |  201811L  |  (C++20)  |  [ P1073R3 ](https://wg21.link/P1073R3)  
Making ` consteval ` propagate up  |  202211L  |  (C++20)    
(DR)  |  [ P2564R3 ](https://wg21.link/P2564R3)  
` __cpp_constexpr ` |  [ ` constexpr ` ](/w/cpp/language/constexpr "cpp/language/constexpr") |  200704L  |  (C++11)  |  [ N2235 ](https://wg21.link/N2235)  
[ Relaxed ` constexpr ` ](/w/cpp/language/constexpr#relaxed-constexpr "cpp/language/constexpr") , [ non- ` const ` ` constexpr ` methods ](/w/cpp/language/constexpr#constexpr-method-is-const "cpp/language/constexpr") |  201304L  |  (C++14)  |  [ N3652 ](https://wg21.link/N3652)  
[ Constexpr lambda ](/w/cpp/language/lambda "cpp/language/lambda") |  201603L  |  (C++17)  |  [ P0170R1 ](https://wg21.link/P0170R1)  
[ Virtual function ](/w/cpp/language/virtual "cpp/language/virtual") calls in constant expressions; [ ` try-catch ` ](/w/cpp/language/try_catch "cpp/language/try catch") blocks in constexpr functions, [ ` dynamic_cast ` ](/w/cpp/language/dynamic_cast "cpp/language/dynamic cast") and polymorphic [ ` typeid ` ](/w/cpp/language/typeid "cpp/language/typeid") in constant expressions; trivial [ default initialization ](/w/cpp/language/default_initialization "cpp/language/default initialization") and [ asm-declaration ](/w/cpp/language/asm "cpp/language/asm") in constexpr functions  |  201907L  |  (C++20)  |  [ P1064R0 ](https://wg21.link/P1064R0)   
[ P1002R1 ](https://wg21.link/P1002R1)  
[ P1327R1 ](https://wg21.link/P1327R1)  
[ P1331R2 ](https://wg21.link/P1331R2)  
[ P1668R1 ](