[PATCH] D150321: [clang] Document extensions from later standards

Nikolas Klauser via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 10 15:40:46 PDT 2023


philnik created this revision.
philnik added a reviewer: aaron.ballman.
Herald added a project: All.
philnik requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D150321

Files:
  clang/docs/LanguageExtensions.rst


Index: clang/docs/LanguageExtensions.rst
===================================================================
--- clang/docs/LanguageExtensions.rst
+++ clang/docs/LanguageExtensions.rst
@@ -1370,6 +1370,38 @@
 
 More information could be found `here <https://clang.llvm.org/docs/Modules.html>`_.
 
+Language extensions back-ported to previous standards
+=====================================================
+
+=================================== ================================ ============= =============
+Feature                             Feature Test Macro               Introduced In Backported To
+=================================== ================================ ============= =============
+Conditional ``explicit``            __cpp_conditional_explicit       C++20         C++03
+``if constexpr``                    __cpp_if_constexpr               C++17         C++11
+fold expressions                    __cpp_fold_expressions           C++17         C++03
+Alias templates                     __cpp_alias_templates            C++11         C++03
+Binary literals                     __cpp_binary_literals            C++14         C++03
+Lambda capture of \*this by value   __cpp_capture_star_this          C++17         C++11
+Relaxed constexpr                   __cpp_constexpr                  C++14         C++11
+Designated initializers             __cpp_designated_initializers    C++20         C++03
+Attributes on enums                 __cpp_enumerator_attributes      C++17         C++11
+Guaranteed copy elision             __cpp_guaranteed_copy_elision    C++17         C++03
+``if consteval``                    __cpp_if_consteval               C++23         C++20
+Hexadecimal floating literals       __cpp_hex_float                  C++17         C++03
+``inline`` variables                __cpp_inline_variables           C++17         C++03
+``static operator[]``               __cpp_multidimensional_subscript C++20         C++03
+Attributes on namespaces            __cpp_namespace_attributes       C++17         C++11
+Non-static data member initializers __cpp_nsdmi                      C++11         C++03
+Range-based ``for`` loop            __cpp_range_based_for            C++11         C++03
+RValue references                   __cpp_rvalue_references          C++11         C++03
+``static operator()``               __cpp_static_call_operator       C++23         C++03
+Strucuted bindings                  __cpp_structured_bindings        C++17         C++03
+template template arguments         __cpp_template_template_args     C++17         C++03
+``using enum``                      __cpp_using_enum                 C++20         C++03
+variable templates                  __cpp_variable_templates         C++14         C++03
+variadic templates                  __cpp_variadic_templates         C++11         C++03
+=================================== ================================ ============= ==============
+
 Type Trait Primitives
 =====================
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D150321.521124.patch
Type: text/x-patch
Size: 3012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230510/22fc0793/attachment.bin>


More information about the cfe-commits mailing list