https://wg21.link/P1668R1)  
Changing the active member of a union in constant evaluation  |  202002L  |  (C++20)  |  [ P1330R0 ](https://wg21.link/P1330R0)   
[ P2493R0 ](https://wg21.link/P2493R0)  
Non- [ literal ](/w/cpp/named_req/LiteralType "cpp/named req/LiteralType") variables, labels, and [ ` goto ` ](/w/cpp/language "cpp/language") statements in constexpr functions  |  202110L  |  (C++23)  |  [ P2242R3 ](https://wg21.link/P2242R3)  
Relaxing some restrictions on [ constexpr ](/w/cpp/language/constexpr "cpp/language/constexpr") functions and function templates  |  202207L  |  (C++23)  |  [ P2448R2 ](https://wg21.link/P2448R2)  
Permitting static constexpr variables in constexpr functions  |  202211L  |  (C++23)  |  [ P2647R1 ](https://wg21.link/P2647R1)  
Constexpr cast from ` void* ` : towards constexpr type-erasure  |  202306L  |  (C++26)  |  [ P2738R1 ](https://wg21.link/P2738R1)  
` __cpp_constexpr_dynamic_alloc ` |  Operations for dynamic storage duration in constexpr functions  |  201907L  |  (C++20)  |  [ P0784R7 ](https://wg21.link/P0784R7)  
` __cpp_constexpr_in_decltype ` |  Generation of function and variable definitions when [ needed for constant evaluation ](/w/cpp/language/constant_expression#Functions_and_variables_needed_for_constant_evaluation "cpp/language/constant expression") |  201711L  |  (C++11)    
(DR)  |  [ P0859R0 ](https://wg21.link/P0859R0)  
` __cpp_constinit ` |  [ ` constinit ` ](/w/cpp/language/constinit "cpp/language/constinit") |  201907L  |  (C++20)  |  [ P1143R2 ](https://wg21.link/P1143R2)  
` __cpp_decltype ` |  [ ` decltype ` ](/w/cpp/language/decltype "cpp/language/decltype") |  200707L  |  (C++11)  |  [ N2343 ](https://wg21.link/N2343)  
` __cpp_decltype_auto ` |  [ Return type deduction for normal functions ](/w/cpp/language/auto "cpp/language/auto") |  201304L  |  (C++14)  |  [ N3638 ](https://wg21.link/N3638)  
` __cpp_deduction_guides ` |  [ Template argument deduction for class templates ](/w/cpp/language/class_template_argument_deduction "cpp/language/class template argument deduction") |  201703L  |  (C++17)  |  [ P0091R3 ](https://wg21.link/P0091R3)   
[ P0512R0 ](https://wg21.link/P0512R0)  
[ P0620R0 ](https://wg21.link/P0620R0)  
[ CTAD  ](/w/cpp/language/class_template_argument_deduction "cpp/language/class template argument deduction") for aggregates and aliases  |  201907L  |  (C++20)  |  [ P1814R0 ](https://wg21.link/P1814R0)   
[ P1816R0 ](https://wg21.link/P1816R0)  
` __cpp_delegating_constructors ` |  [ Delegating constructors ](/w/cpp/language/initializer_list#Delegating_constructor "cpp/language/initializer list") |  200604L  |  (C++11)  |  [ N1986 ](https://wg21.link/N1986)  
` __cpp_designated_initializers ` |  [ Designated initializer ](/w/cpp/language/aggregate_initialization#Designated_initializers "cpp/language/aggregate initialization") |  201707L  |  (C++20)  |  [ P0329R4 ](https://wg21.link/P0329R4)  
` __cpp_enumerator_attributes ` |  Attributes for [ enumerators ](/w/cpp/language/enum "cpp/language/enum") |  201411L  |  (C++17)  |  [ N4266 ](https://wg21.link/N4266)  
` __cpp_explicit_this_parameter ` |  [ Explicit object parameter ](/w/cpp/language/member_functions#Explicit_object_parameter "cpp/language/member functions") |  202110L  |  (C++23)  |  [ P0847R7 ](https://wg21.link/P0847R7)  
` __cpp_fold_expressions ` |  [ Fold expressions ](/w/cpp/language/fold "cpp/language/fold") |  201603L  |  (C++17)  |  [ N4295 ](https://wg21.link/N4295)   
[ P0036R0 ](https://wg21.link/P0036R0)  
` __cpp_generic_lambdas ` |  [ Generic lambda expressions ](/w/cpp/language/lambda "cpp/language/lambda") |  201304L  |  (C++14)  |  [ N3649 ](https://wg21.link/N3649)  
Explicit template parameter list for [ generic lambdas ](/w/cpp/language/lambda "cpp/language/lambda") |  201707L  |  (C++20)  |  [ P0428R2 ](https://wg21.link/P0428R2)  
` __cpp_guaranteed_copy_elision ` |  Guaranteed copy elision through simplified [ value categories ](/w/cpp/language/value_cate