201510L  |  (C++17)  |  [ P0012R1 ](https://wg21.link/P0012R1)  
` __cpp_nontype_template_args ` |  Allow constant evaluation for all [ non-type template arguments ](/w/cpp/language/template_parameters#Template_non-type_arguments "cpp/language/template parameters") |  201411L  |  (C++17)  |  [ N4268 ](https://wg21.link/N4268)  
Class types and floating-point types in [ non-type template parameters ](/w/cpp/language/template_parameters#Non-type_template_parameter "cpp/language/template parameters") |  201911L  |  (C++20)  |  [ P1907R1 ](https://wg21.link/P1907R1)  
` __cpp_nontype_template_  parameter_auto ` |  Declaring [ non-type template parameters ](/w/cpp/language/template_parameters#Non-type_template_parameter "cpp/language/template parameters") with ` auto ` |  201606L  |  (C++17)  |  [ P0127R2 ](https://wg21.link/P0127R2)  
` __cpp_nsdmi ` |  [ Non-static data member initializers ](/w/cpp/language/data_members#Member_initialization "cpp/language/data members") |  200809L  |  (C++11)  |  [ N2756 ](https://wg21.link/N2756)  
` __cpp_pack_indexing ` |  [ Pack indexing ](/w/cpp/language/pack_indexing "cpp/language/pack indexing") |  202311L  |  (C++26)  |  [ P2662R3 ](https://wg21.link/P2662R3)  
` __cpp_placeholder_variables ` |  A nice placeholder with no name  |  202306L  |  (C++26)  |  [ P2169R4 ](https://wg21.link/P2169R4)  
` __cpp_range_based_for ` |  [ Range-based ` for ` loop ](/w/cpp/language/range-for "cpp/language/range-for") |  200907L  |  (C++11)  |  [ N2930 ](https://wg21.link/N2930)  
[ Range-based ` for ` loop ](/w/cpp/language/range-for#Explanation "cpp/language/range-for") with different ` begin ` / ` end ` types  |  201603L  |  (C++17)  |  [ P0184R0 ](https://wg21.link/P0184R0)  
Lifetime extension in range-based ` for ` |  202211L  |  (C++23)  |  [ P2644R1 ](https://wg21.link/P2644R1)   
[ P2718R0 ](https://wg21.link/P2718R0)  
[ CWG2659 ](https://wg21.link/CWG2659)  
` __cpp_raw_strings ` |  [ Raw string literals ](/w/cpp/language/string_literal "cpp/language/string literal") |  200710L  |  (C++11)  |  [ N2442 ](https://wg21.link/N2442)  
` __cpp_ref_qualifiers ` |  [ ref-qualifiers ](/w/cpp/language/member_functions "cpp/language/member functions") |  200710L  |  (C++11)  |  [ N2439 ](https://wg21.link/N2439)  
` __cpp_return_type_deduction ` |  [ Return type deduction for normal functions ](/w/cpp/language/auto "cpp/language/auto") |  201304L  |  (C++14)  |  [ N3638 ](https://wg21.link/N3638)  
` __cpp_rvalue_references ` |  [ Rvalue reference ](/w/cpp/language/reference "cpp/language/reference") |  200610L  |  (C++11)  |  [ N2118 ](https://wg21.link/N2118)  
` __cpp_size_t_suffix ` |  [ Literal suffixes for ` size_t ` and its signed version ](/w/cpp/language/integer_literal "cpp/language/integer literal") |  202011L  |  (C++23)  |  [ P0330R8 ](https://wg21.link/P0330R8)  
` __cpp_sized_deallocation ` |  [ Sized deallocation ](/w/cpp/memory/new/operator_delete "cpp/memory/new/operator delete") |  201309L  |  (C++14)  |  [ N3778 ](https://wg21.link/N3778)  
` __cpp_static_assert ` |  [ ` static_assert ` ](/w/cpp/language/static_assert "cpp/language/static assert") |  200410L  |  (C++11)  |  [ N1720 ](https://wg21.link/N1720)  
[ Single-argument ` static_assert ` ](/w/cpp/language/static_assert "cpp/language/static assert") |  201411L  |  (C++17)  |  [ N3928 ](https://wg21.link/N3928)  
[ User-generated ` static_assert ` messages ](/w/cpp/language/static_assert "cpp/language/static assert") |  202306L  |  (C++26)  |  [ P2741R3 ](https://wg21.link/P2741R3)  
` __cpp_static_call_operator ` |  ` static ` [ ` operator() ` ](/w/cpp/language/operators "cpp/language/operators") |  202207L  |  (C++23)  |  [ P1169R4 ](https://wg21.link/P1169R4)  
` __cpp_structured_bindings ` |  [ Structured bindings ](/w/cpp/language/structured_binding "cpp/language/structured binding") |  201606L  |  (C++17)  |  [ P0217R3 ](https://wg21.link/P0217R3)  
` __cpp_template_template_args ` |  Matching of [ template template-argum