From e01833fbb6e9e00f83dc43bfff5ebed1ff4b7830 Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 09:06:52 +0300 Subject: [PATCH 01/10] Add R++ frontend and initial support data --- features_cpp20.yaml | 6 +++ features_cpp23.yaml | 3 ++ features_cpp26.yaml | 6 ++- frontend_rscpp.yaml | 91 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 frontend_rscpp.yaml diff --git a/features_cpp20.yaml b/features_cpp20.yaml index 7788154..4bc715d 100644 --- a/features_cpp20.yaml +++ b/features_cpp20.yaml @@ -93,6 +93,7 @@ features: - tool: Xcode 12 status: partial note: "The following papers are not implemented: [P2103](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2103r0.html), DR1496, DR1734 and [P0848](https://wg21.link/P0848)." + - R++ ftm: - name: __cpp_concepts value: 201907L @@ -395,6 +396,7 @@ features: - Clang 16 - MSVC 14.29 - Xcode 16 + - R++ 2025.2 - desc: "Pack-expansions in lambda init-captures" paper: P0780 @@ -1398,6 +1400,10 @@ features: - Clang 13 - MSVC 14.24 - Xcode 13.4.1 + - tool: R++ + status: partial + issue: RSCPP-37266 + note: "The implicit move from an rvalue reference is not implemented." - desc: "`constexpr` container operations" paper: P0784 diff --git a/features_cpp23.yaml b/features_cpp23.yaml index 2378608..ee0d770 100644 --- a/features_cpp23.yaml +++ b/features_cpp23.yaml @@ -138,6 +138,7 @@ features: - Clang 14 - MSVC 14.44 - Xcode 14 + - R++ 2023.2 ftm: - name: __cpp_if_consteval value: 202106L @@ -421,6 +422,7 @@ features: - MSVC 14.32 - MSVC 14.43 - Xcode 16.3 + - R++ 2023.1 ftm: - name: __cpp_explicit_this_parameter value: 202110L @@ -469,6 +471,7 @@ features: - Clang 15 - MSVC 14.42 - Xcode 14.3 + - R++ 2024.2 ftm: - name: __cpp_multidimensional_subscript value: 202110L diff --git a/features_cpp26.yaml b/features_cpp26.yaml index d2b4169..f41302f 100644 --- a/features_cpp26.yaml +++ b/features_cpp26.yaml @@ -62,6 +62,9 @@ features: - GCC 14 - Clang 17 - Xcode 16.3 + - tool: R++ + status: unsupported + issue: RSCPP-35928 ftm: - name: __cpp_static_assert value: 202306L @@ -385,6 +388,7 @@ features: - GCC 15 - Clang 19 - Xcode 16.3 + - R++ 2025.3 ftm: - name: __cpp_pack_indexing value: 202311L @@ -1295,7 +1299,7 @@ features: - desc: "Annotations for Reflection" paper: P3394 summary: "Attach compile-time values to declarations for reflection to read back." - support: [GCC 16] + support: [GCC 16, R++ 2026.2] content: reflection-annotations.md - desc: "Splicing a base class subobject" diff --git a/frontend_rscpp.yaml b/frontend_rscpp.yaml new file mode 100644 index 0000000..80515d0 --- /dev/null +++ b/frontend_rscpp.yaml @@ -0,0 +1,91 @@ +--- +frontend: + id: rscpp + name: R++ + full_name: ReSharper C++ + vendor: JetBrains + description: >- + R++ is the JetBrains C and C++ language engine. It powers the code analysis and + the language support in CLion, Rider, and ReSharper C++ for Visual Studio. + kind: frontend + standard_library: false + products: + - CLion + - Rider + - ReSharper C++ for Visual Studio + refs: + - title: ReSharper C++ + url: "https://www.jetbrains.com/resharper-cpp/" + - title: CLion + url: "https://www.jetbrains.com/clion/" +issue_tracker: + name: JetBrains YouTrack + url_template: "https://youtrack.jetbrains.com/issue/{id}" +releases: + - version: "2026.2" + released: July 22, 2026 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2026/07/22/resharper-cpp-2026-2-cpp-26-reflection-ispc-language-support-and-more/" + - version: "2026.1" + released: March 30, 2026 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2026/03/30/resharper-cpp-2026-1-released/" + - version: "2025.3" + released: November 11, 2025 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2025/11/11/resharper-cpp-2025-3/" + - version: "2025.2" + released: August 14, 2025 + refs: [] + - version: "2025.1" + released: April 16, 2025 + refs: [] + - version: "2024.3" + released: November 13, 2024 + refs: [] + - version: "2024.2" + released: August 15, 2024 + refs: [] + - version: "2024.1" + released: April 9, 2024 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2024/04/09/resharper-cpp-2024-1/" + - version: "2023.3" + released: December 6, 2023 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2023/12/07/resharper-cpp-2023-3/" + - version: "2023.2" + released: August 2, 2023 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2023/08/02/resharper-cpp-2023-2/" + - version: "2023.1" + released: April 5, 2023 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2023/04/05/resharper-cpp-2023-1/" + - version: "2022.3" + released: December 7, 2022 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2022/12/07/resharper-cpp-2022-3/" + - version: "2022.2" + released: August 2, 2022 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2022/08/02/resharper-cpp-2022-2/" + - version: "2022.1" + released: April 19, 2022 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2022/04/19/resharper-cpp-2022-1/" + - version: "2021.3" + released: December 8, 2021 + refs: + - title: Release notes + url: "https://blog.jetbrains.com/rscpp/2021/12/08/resharper-cpp-2021-3/" From d802b9ebd59bc6f9c0da1d8d70497a1ed4ec4b3f Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 09:16:20 +0300 Subject: [PATCH 02/10] Add R++ support for P2996 --- features_cpp26.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/features_cpp26.yaml b/features_cpp26.yaml index f41302f..9a06bbf 100644 --- a/features_cpp26.yaml +++ b/features_cpp26.yaml @@ -1291,6 +1291,8 @@ features: support: - tool: GCC 16 note: "Requires `-freflection`" + - tool: R++ 2026.2 + note: "The language part only. R++ implements no standard library." ftm: - name: __cpp_impl_reflection value: 202506L From 76cc9255987280aef16c28d0260cec0105cb68df Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 09:26:14 +0300 Subject: [PATCH 03/10] Add R++ support data for all standards --- features_c11.yaml | 2 ++ features_c23.yaml | 19 ++++++++++++++++++ features_c2y.yaml | 2 ++ features_c99.yaml | 9 +++++++++ features_cpp11.yaml | 24 ++++++++++++++++++++++ features_cpp14.yaml | 7 +++++++ features_cpp17.yaml | 24 ++++++++++++++++++++++ features_cpp20.yaml | 49 ++++++++++++++++++++++++++++++++++++++++++++- features_cpp23.yaml | 15 ++++++++++++++ features_cpp26.yaml | 19 ++++++++++++------ 10 files changed, 163 insertions(+), 7 deletions(-) diff --git a/features_c11.yaml b/features_c11.yaml index df477ab..820b5f8 100644 --- a/features_c11.yaml +++ b/features_c11.yaml @@ -18,6 +18,7 @@ features: - MSVC 14.27 - Xcode 16.1 - TinyCC + - R++ 2021.3 - desc: "Anonymous structures and unions" paper: N1444 content: c-anonymous-struct-union.md @@ -34,6 +35,7 @@ features: - Clang 3.3 - MSVC 14.27 - Xcode 16.1 + - R++ - desc: "Atomic operations (`_Atomic`, ``)" paper: N1485 content: c-atomic.md diff --git a/features_c23.yaml b/features_c23.yaml index 703eb9e..404c0b0 100644 --- a/features_c23.yaml +++ b/features_c23.yaml @@ -41,18 +41,21 @@ features: support: - GCC 4.2 (partial) - GCC 12 + - R++ 2025.2 - desc: "`[[fallthrough]]`" paper: N2408 support: - GCC 10 - Clang 9 - Xcode 11.4 + - R++ - desc: "[u8 character constants](https://cppreference.com/c/language/character_constant)" paper: N2418 support: - GCC 10 - Clang 15 - Xcode 15 + - R++ - desc: "Removal of [function definitions](https://cppreference.com/c/language/function_definition) without prototype" paper: N2432 support: @@ -81,6 +84,10 @@ features: - Clang 18 - MSVC (partial) - Xcode 15 + - tool: R++ + status: partial + issue: RSCPP-33733 + note: "Only a label at the end of a block is confirmed." - desc: "[Binary integer constants](https://cppreference.com/c/language/integer_constant)" paper: N2549 content: c-binary-literals.md @@ -98,12 +105,14 @@ features: - Xcode 16.3 - owcc - TinyCC + - R++ - desc: "[__has_c_attribute](https://cppreference.com/c/language/attributes#Attribute_testing) in preprocessor conditionals" paper: N2553 support: - GCC 11 - Clang 9 - Xcode 11.4 + - R++ 2024.2 - desc: "Allow duplicate attributes" paper: N2557 support: @@ -137,6 +146,7 @@ features: - tool: MSVC 14.0 note: "Supported as an extension." - Xcode 13.4 + - R++ - desc: "[`#elifdef` and `#elifndef`](https://cppreference.com/c/preprocessor/conditional)" paper: N2645 content: c-elifdef.md @@ -145,11 +155,13 @@ features: - Clang 13 - MSVC 14.40 - Xcode 13.3 + - R++ 2024.2 - desc: "Type change of [u8 string literals](https://cppreference.com/c/language/string_literal) to `char8_t[]`" paper: N2653 support: - GCC 13 - Clang 19 + - R++ - desc: "`[[maybe_unused]]` for labels" paper: N2662 support: @@ -164,6 +176,7 @@ features: - Xcode 16.1 - owcc - TinyCC + - R++ 2023.2 - desc: "Bit-precise integer types (`_BitInt`)" paper: N2763 content: c-bitint.md @@ -173,12 +186,14 @@ features: note: "Only supported on IA-32, x86-64 and AArch64 LE." - Clang 15 - Xcode 15 + - R++ 2025.2 - desc: "`[[noreturn]]`" paper: N2764 support: - GCC 13 - Clang 15 - Xcode 15 + - R++ - desc: "Suffixes for bit-precise integer constants" paper: N2775 support: @@ -200,6 +215,7 @@ features: - MSVC 14.11 - Xcode - TinyCC + - R++ - desc: "Identifier Syntax using Unicode Standard Annex 31" paper: N2836 support: @@ -237,6 +253,7 @@ features: - tool: Xcode status: partial note: "Supported as an extension. Only typeof (and `__typeof__` in strict modes) supported." + - R++ 2024.3 - desc: "New spelling of keywords" paper: N2934 support: @@ -275,6 +292,7 @@ features: - GCC 15 - Clang 19 - Xcode 26 + - R++ 2026.1 - desc: "`constexpr` objects" paper: N3018 content: c-constexpr.md @@ -306,6 +324,7 @@ features: - Clang 12 (partial) - MSVC 14.39 - Xcode 14 + - R++ 2023.1 - desc: "Improved tag compatibility" paper: N3037 support: diff --git a/features_c2y.yaml b/features_c2y.yaml index 94730cf..e39f47a 100644 --- a/features_c2y.yaml +++ b/features_c2y.yaml @@ -187,6 +187,7 @@ features: - GCC 16 - Clang 21 - Xcode 26.4 + - R++ 2026.1 - desc: "Restartable Functions for Efficient Character Conversions" paper: N3366 @@ -242,6 +243,7 @@ features: - Clang 22 - tool: Xcode 16.3 note: "Supported as a pre-existing GNU extension prior to C2y standardization." + - R++ - desc: "Complex operators" paper: N3460 diff --git a/features_c99.yaml b/features_c99.yaml index eba2dfc..ba6114d 100644 --- a/features_c99.yaml +++ b/features_c99.yaml @@ -42,6 +42,7 @@ features: status: partial note: "`parsed with -zastd=c99 (for wcc*), but does not change the code." - TinyCC + - R++ - desc: "Enhanced [arithmetic types](https://cppreference.com/c/language/arithmetic_types)" paper: - N815 @@ -55,6 +56,7 @@ features: - GCC - Clang (partial) - Xcode (partial) + - R++ - desc: "Flexible array members" content: c-flexible-array.md support: @@ -63,6 +65,7 @@ features: - Xcode - owcc - TinyCC + - R++ - desc: "[Variable-length array](https://cppreference.com/c/language/array#Variable-length_arrays) (VLA) types" paper: N683 content: c-vla.md @@ -124,6 +127,7 @@ features: - Xcode - owcc - TinyCC + - R++ - desc: "[Compound literals](https://cppreference.com/c/language/compound_literal)" paper: N716 content: c-compound-literals.md @@ -132,6 +136,7 @@ features: - Clang - MSVC - Xcode 14 + - R++ - desc: "Floating-point environment" summary: "Runtime access to the floating-point environment." support: @@ -198,12 +203,14 @@ features: - Xcode 14 - owcc 1.2 - TinyCC + - R++ - desc: "Cvr-qualifiers and `static` in `[]` within function declarations" summary: "Qualifiers and `static` array sizes in function parameters." support: - GCC 3.1 - Clang - Xcode + - R++ 2024.1 content: c-array-parameter-qualifiers.md - desc: "[Variadic macros](https://cppreference.com/c/preprocessor/replace)" paper: N707 @@ -215,6 +222,7 @@ features: - Xcode 14 - owcc - TinyCC + - R++ - desc: "`_Pragma` preprocessor operator" summary: "Emits a pragma from within a macro expansion." paper: N634 @@ -226,6 +234,7 @@ features: note: "Requires /std:c11 or later." - Xcode 14 - owcc + - R++ content: c-pragma-operator.md - desc: "Standard pragmas for floating-point evaluation" summary: "Standard `STDC` pragmas controlling floating-point code generation." diff --git a/features_cpp11.yaml b/features_cpp11.yaml index fe67984..8837874 100644 --- a/features_cpp11.yaml +++ b/features_cpp11.yaml @@ -37,6 +37,7 @@ features: - Clang 2.9 - MSVC 10.0 - Xcode + - R++ - desc: "[`long long`](https://cppreference.com/cpp/language/types#long_long)" paper: N1811 @@ -62,6 +63,7 @@ features: - Clang 3 - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_delegating_constructors value: 200604L @@ -73,6 +75,7 @@ features: - Clang - MSVC 6.0 - Xcode + - R++ - desc: "`constexpr`" paper: N2235 @@ -93,6 +96,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_unicode_characters value: 200704L @@ -111,6 +115,7 @@ features: - MSVC 8.0 (partial) - MSVC 14.0 - Xcode + - R++ - desc: "[Template aliases](https://cppreference.com/cpp/language/type_alias)" paper: N2258 @@ -131,6 +136,7 @@ features: - Clang 3 - MSVC 14.0 - Xcode + - R++ - desc: "`alignof`" paper: N2341 @@ -147,6 +153,7 @@ features: - Clang 3 - MSVC 12.0 - Xcode + - R++ - desc: "[Strongly-typed `enum`](https://cppreference.com/cpp/language/enum#Scoped_enumerations)" paper: N2347 @@ -164,6 +171,7 @@ features: - Clang 3.1 - MSVC 11.0 - Xcode + - R++ - desc: "`nullptr`" paper: N2431 @@ -181,6 +189,7 @@ features: - Clang 3 - MSVC 12.0 - Xcode + - R++ - desc: "Ref-qualifiers" paper: N2439 @@ -189,6 +198,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_ref_qualifiers value: 200710L @@ -200,6 +210,7 @@ features: - Clang 3 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_unicode_literals value: 200710L @@ -211,6 +222,7 @@ features: - Clang - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_raw_strings value: 200710L @@ -222,6 +234,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ - desc: "[Inheriting constructors](https://cppreference.com/cpp/language/using_declaration#Inheriting_constructors)" paper: N2540 @@ -230,6 +243,7 @@ features: - Clang 3.3 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_inheriting_constructors value: 200802L @@ -241,6 +255,7 @@ features: - Clang 2.9 - MSVC 10.0 - Xcode + - R++ - desc: "Unrestricted [unions](https://cppreference.com/cpp/language/union)" paper: N2544 @@ -258,6 +273,7 @@ features: - Clang 2.9 - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_variadic_templates value: 200704L @@ -269,6 +285,7 @@ features: - Clang 2.9 - MSVC 14.14 - Xcode + - R++ - desc: "Local and unnamed types as template parameters" paper: N2657 @@ -311,6 +328,7 @@ features: - Clang 3.1 - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_initializer_lists value: 200806L @@ -333,6 +351,7 @@ features: - Clang 3.3 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_attributes value: 200809L @@ -353,6 +372,7 @@ features: - Clang 3.1 - MSVC 11.0 - Xcode + - R++ - desc: "[User-defined literals](https://cppreference.com/cpp/language/user_literal)" paper: N2765 @@ -361,6 +381,7 @@ features: - Clang 3.1 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_user_defined_literals value: 200809L @@ -388,6 +409,7 @@ features: - MSVC 10.0 (partial) - MSVC 11.0 - Xcode + - R++ ftm: - name: __cpp_lambdas value: 200907L @@ -431,6 +453,7 @@ features: - MSVC 8.0 (partial) - MSVC 11.0 - Xcode + - R++ - desc: "`decltype`" paper: [N2343, N3276] @@ -442,6 +465,7 @@ features: - MSVC 10.0 (partial) - MSVC 11.0 - Xcode + - R++ ftm: - name: __cpp_decltype value: 200707L diff --git a/features_cpp14.yaml b/features_cpp14.yaml index b99c7a0..a2fb1d3 100644 --- a/features_cpp14.yaml +++ b/features_cpp14.yaml @@ -16,6 +16,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_binary_literals value: 201304L @@ -33,6 +34,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_decltype_auto value: 201304L @@ -47,6 +49,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_init_captures value: 201304L @@ -59,6 +62,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_generic_lambdas value: 201304L @@ -71,6 +75,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_variable_templates value: 201304L @@ -109,6 +114,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __has_cpp_attribute(deprecated) value: 201309L @@ -131,6 +137,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_digit_separators value: 201309L diff --git a/features_cpp17.yaml b/features_cpp17.yaml index 21dcb77..652c8f5 100644 --- a/features_cpp17.yaml +++ b/features_cpp17.yaml @@ -32,6 +32,7 @@ features: - Clang 3.6 - MSVC 14.0 - Xcode + - R++ content: nested-namespaces.md - desc: "Extending `static_assert`, v2" @@ -56,6 +57,7 @@ features: - Clang 3.6 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_enumerator_attributes value: 201411L @@ -115,6 +117,7 @@ features: - Clang 4 - MSVC 14.12 - Xcode + - R++ ftm: - name: __cpp_noexcept_function_type value: 201510L @@ -127,6 +130,7 @@ features: - Clang - MSVC 14.11 - Xcode + - R++ - desc: "Rewording inheriting constructors" paper: P0136 @@ -147,6 +151,7 @@ features: - Clang 3.9 - MSVC 14.14 - Xcode + - R++ ftm: - name: __cpp_aggregate_bases value: 201603L @@ -160,6 +165,7 @@ features: - Clang 3.6 - MSVC 14.12 - Xcode + - R++ ftm: - name: __cpp_fold_expressions value: 201603L @@ -172,6 +178,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "Construction rules for `enum class` values" paper: P0138 @@ -189,6 +196,7 @@ features: - Clang 5 - MSVC 14.11 - Xcode + - R++ ftm: - name: __cpp_constexpr value: 201603L @@ -221,6 +229,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "Attribute `[[maybe_unused]]`" paper: P0212 @@ -230,6 +239,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "Hexadecimal floating literals" paper: P0245 @@ -238,6 +248,7 @@ features: - Clang - MSVC 14.11 - Xcode + - R++ ftm: - name: __cpp_hex_float value: 201603L @@ -249,6 +260,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "Dynamic memory allocation for over-aligned data" paper: P0035 @@ -257,6 +269,7 @@ features: - Clang 4 - MSVC 14.12 - Xcode 10 + - R++ ftm: - name: __cpp_aligned_new value: 201606L @@ -269,6 +282,7 @@ features: - Clang 4 - MSVC 14.14 - Xcode + - R++ ftm: - name: __cpp_nontype_template_parameter_auto value: 201606L @@ -282,6 +296,7 @@ features: - Clang 4 - MSVC 14.13 - Xcode + - R++ ftm: - name: __cpp_guaranteed_copy_elision value: 201606L @@ -311,6 +326,7 @@ features: - Clang 4 - MSVC 14.11 - Xcode + - R++ ftm: - name: __cpp_structured_bindings value: 201606L @@ -332,6 +348,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ ftm: - name: __cpp_if_constexpr value: 201606L @@ -344,6 +361,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "`inline` variables" paper: P0386 @@ -354,6 +372,7 @@ features: - Clang 3.9 - MSVC 14.12 - Xcode + - R++ ftm: - name: __cpp_inline_variables value: 201606L @@ -373,6 +392,7 @@ features: - Clang 4 - MSVC 14.14 - Xcode + - R++ ftm: - name: __cpp_variadic_using value: 201611L @@ -384,6 +404,9 @@ features: - Clang 4 - MSVC 14.12 - Xcode + - tool: R++ + status: unsupported + issue: RSCPP-25151 ftm: - name: __cpp_template_template_args value: 201611L @@ -397,6 +420,7 @@ features: - Clang 5 - MSVC 14.14 - Xcode + - R++ ftm: - name: __cpp_deduction_guides value: 201703L diff --git a/features_cpp20.yaml b/features_cpp20.yaml index 4bc715d..5fa13da 100644 --- a/features_cpp20.yaml +++ b/features_cpp20.yaml @@ -7,6 +7,7 @@ features: - Clang 6 - MSVC 14.25 - Xcode 10 + - R++ - desc: "`const&`-qualified pointers to members" paper: P0704 @@ -38,6 +39,7 @@ features: - Clang 9 - MSVC 14.25 - Xcode 12 + - R++ 2023.1 content: va-opt.md - desc: "Designated initializers" @@ -55,6 +57,7 @@ features: - Clang 10 - MSVC 14.21 - Xcode 12 + - R++ ftm: - name: __cpp_designated_initializers value: 201707L @@ -67,6 +70,7 @@ features: - Clang 9 - MSVC 14.22 - Xcode 11 + - R++ ftm: - name: __cpp_generic_lambdas value: 201707L @@ -130,10 +134,16 @@ features: - Clang 8 - MSVC 14.25 - Xcode 11 + - R++ - desc: "Simplifying implicit lambda capture" paper: P0588 - support: [GCC 8, MSVC 14.24] + support: + - GCC 8 + - MSVC 14.24 + - tool: R++ + status: unsupported + issue: RSCPP-31582 - desc: "ADL and function templates that are not visible" paper: P0846 @@ -142,6 +152,7 @@ features: - Clang 9 - MSVC 14.21 - Xcode 11.4 + - R++ - desc: "`const` mismatch with defaulted copy constructor" paper: P0641 @@ -174,6 +185,7 @@ features: - Clang 10 - MSVC 14.20 - Xcode 12 + - R++ ftm: - name: __cpp_impl_three_way_comparison value: 201907L @@ -200,6 +212,7 @@ features: - MSVC 14.23 - Clang 16 - Xcode 12 + - R++ - desc: "Access checking on specializations" paper: P0692 @@ -217,6 +230,7 @@ features: - Clang 8 - MSVC 14.22 - Xcode 10.2 + - R++ - desc: "Wording for lambdas in unevaluated contexts" paper: P0315 @@ -364,6 +378,7 @@ features: - Clang 9 - MSVC 14.28 - Xcode 11.4 + - R++ 2023.2 - desc: "Relaxing the range-`for` loop customization point finding rules" paper: P0962 @@ -372,6 +387,7 @@ features: - Clang 8 - MSVC 14.25 - Xcode 11 + - R++ - desc: "Allow structured bindings to accessible members" paper: P0969 @@ -380,6 +396,7 @@ features: - Clang 8 - MSVC 14.20 - Xcode 10.2 + - R++ - desc: "Relaxing the structured bindings customization point finding rules" paper: P0961 @@ -388,6 +405,7 @@ features: - Clang 8 - MSVC 14.20 - Xcode 10.2 + - R++ - desc: "Down with `typename`!" paper: P0634 @@ -406,6 +424,7 @@ features: - Clang 9 - MSVC 14.22 - Xcode 11.4 + - R++ ftm: - name: __cpp_init_captures value: 201803L @@ -419,6 +438,7 @@ features: - Clang 12 - MSVC 14.26 - Xcode 13 + - R++ - desc: "Symmetry for spaceship" paper: P0905 @@ -508,6 +528,9 @@ features: - Clang 7 - MSVC 14.22 - Xcode 10.2 + - tool: R++ + status: unsupported + issue: RSCPP-31582 keywords: - lambda @@ -520,6 +543,7 @@ features: - MSVC 14.28 - Xcode 13 (partial) - Xcode 16.3 + - R++ 2021.3 - desc: "Atomic compare-and-exchange with padding bits" paper: P0528 @@ -559,6 +583,7 @@ features: - Clang 9 - MSVC 14.28 - Xcode 11.4 + - R++ 2021.3 ftm: - name: __cpp_constexpr value: 201907L @@ -572,6 +597,7 @@ features: - Clang 8 - MSVC 14.20 - Xcode 10.2 + - R++ - desc: "Consistency improvements for comparisons" paper: P1120 @@ -590,6 +616,7 @@ features: - MSVC 14.15 (partial) - MSVC 14.20 - Xcode + - R++ - desc: "`explicit(bool)`" paper: P0892 @@ -599,6 +626,7 @@ features: - Clang 9 - MSVC 14.24 - Xcode 11.4 + - R++ ftm: - name: __cpp_conditional_explicit value: 201806L @@ -760,6 +788,7 @@ features: - Clang 8 - MSVC 14.25 - Xcode 10.2 + - R++ 2026.2 - desc: "`dynamic_cast` and polymorphic `typeid` in constant expressions" paper: P1327 @@ -787,6 +816,7 @@ features: - Clang 7 - MSVC 14.22 - Xcode 10 + - R++ ftm: - name: __cpp_char8_t value: 201811L @@ -813,6 +843,7 @@ features: - Clang 9 - MSVC 14.29 - Xcode + - R++ - desc: "Immediate functions (`consteval`)" paper: P1073 @@ -827,6 +858,7 @@ features: - MSVC 14.28 (partial) - MSVC 14.29 - Xcode 15 + - R++ ftm: - name: __cpp_consteval value: 201811L @@ -852,6 +884,7 @@ features: - MSVC 14.26 (partial) - MSVC 14.28 - Xcode 12.5 + - R++ - desc: "Nested inline namespaces" paper: P1094 @@ -860,6 +893,7 @@ features: - Clang 8 - MSVC 14.27 - Xcode 10.2 + - R++ - desc: "Changing the active member of a `union` inside `constexpr`" paper: P1330 @@ -1098,6 +1132,7 @@ features: - MSVC 14.11 - MSVC 14.24 - Xcode 16 + - R++ - desc: "Stronger Unicode requirements" paper: [P1041, P1139] @@ -1114,6 +1149,7 @@ features: - Clang 16 - MSVC 14.28 - Xcode 16 + - R++ ftm: - name: __cpp_aggregate_paren_init value: 201902L @@ -1153,6 +1189,7 @@ features: - MSVC 14.28 - tool: Xcode 26 note: "Apple Clang requires the `-fcxx-modules` flag **in addition to** `-fmodules`.

Xcode 26 does not ship the `clang-scan-deps` utility that is required by certain build system generators like CMake, in order to scan module dependencies.
This means that C++ modules cannot be used in conjunction with CMake's Xcode generator (`-G Xcode`).\n" + - R++ ftm: - name: __cpp_modules value: 201907L @@ -1164,6 +1201,7 @@ features: - Clang 10 - MSVC 14.22 - Xcode 12 + - R++ - desc: "Coroutines" paper: [P0912, LWG3393] @@ -1181,6 +1219,7 @@ features: - MSVC 14.28 - Xcode 10.2 (partial) - Xcode 16.3 + - R++ ftm: - name: __cpp_impl_coroutine value: 201902L @@ -1274,6 +1313,9 @@ features: - Clang 9 - MSVC 14.25 - Xcode 11.4 + - tool: R++ + status: unsupported + issue: RSCPP-31583 - desc: "Permitting trivial default initialization in `constexpr` contexts" paper: P1331 @@ -1282,6 +1324,7 @@ features: - Clang 10 - MSVC 14.27 - Xcode 12 + - R++ 2025.1 - desc: "Conditionally trivial special member functions" paper: P0848 @@ -1310,6 +1353,7 @@ features: - Clang 9 - MSVC 14.25 - Xcode 11.4 + - R++ 2022.3 - desc: "`using` enum" paper: P1099 @@ -1320,6 +1364,7 @@ features: - Clang 13 - MSVC 14.24 - Xcode 13.4.1 + - R++ ftm: - name: __cpp_using_enum value: 201907L @@ -1331,6 +1376,7 @@ features: - GCC 11 - Clang 17 - MSVC 14.27 + - R++ 2021.3 ftm: - name: __cpp_deduction_guides value: 201907L @@ -1360,6 +1406,7 @@ features: - Clang 10 - MSVC 14.29 - Xcode 12 + - R++ ftm: - name: __cpp_constinit value: 201907L diff --git a/features_cpp23.yaml b/features_cpp23.yaml index ee0d770..b30ab27 100644 --- a/features_cpp23.yaml +++ b/features_cpp23.yaml @@ -8,6 +8,7 @@ features: - Clang 13 - MSVC 14.43 - Xcode 13.4.1 + - R++ 2024.3 ftm: - name: __cpp_size_t_suffix value: 202011L @@ -74,6 +75,7 @@ features: - Clang 13 - MSVC 14.44 - Xcode 13.4.1 + - R++ 2023.1 content: lambda-omit-parens.md - desc: "Repairing input range adaptors and `std::counted_iterator`" @@ -443,6 +445,7 @@ features: - Clang 13 - MSVC 14.40 - Xcode 13.4.1 + - R++ 2024.2 - desc: "Extend init-statement (of `for` loop) to allow alias-declaration" paper: P2360 @@ -453,6 +456,7 @@ features: - tool: MSVC 14.50 note: "Compiles, but no IntelliSense support yet." - Xcode 14 + - R++ 2023.1 - desc: "Change scope of lambda trailing-return-type" paper: [P2036, P2579] @@ -558,6 +562,7 @@ features: - Clang 15 - MSVC 14.50 - Xcode 14.3 + - R++ 2023.1 ftm: - name: __cpp_auto_cast value: 202110L @@ -666,6 +671,7 @@ features: - Clang 13 - MSVC 14.44 - Xcode 13.4.1 + - R++ 2024.3 - desc: "`std::expected` (``)" paper: [P0323, P2549] @@ -856,6 +862,7 @@ features: - Clang 14 - Xcode 15 - MSVC 14.51 + - R++ 2023.3 - desc: "Labels at the end of compound statements" paper: P2324 @@ -865,6 +872,7 @@ features: - Clang 16 - Xcode 16 - MSVC 14.51 + - R++ 2023.1 - desc: "Delimited escape sequences" paper: P2290 @@ -920,6 +928,7 @@ features: - Clang 16 - MSVC 14.44 - Xcode 16 + - R++ 2023.2 ftm: - name: __cpp_static_call_operator value: 202207L @@ -947,6 +956,7 @@ features: - GCC 13 - tool: MSVC note: "Not applicable to MSVC." + - R++ 2026.1 - desc: "Standard names and library support for extended floating-point types" paper: P1467 @@ -974,6 +984,7 @@ features: - Clang 19 - Xcode 16.3 - MSVC 14.51 + - R++ - desc: "Support for UTF-8 as a portable source file encoding" paper: P2295 @@ -991,6 +1002,7 @@ features: - Clang 16 - MSVC 14.34 - Xcode 16 + - R++ 2023.2 ftm: - name: __cpp_char8_t value: 202207L @@ -1411,6 +1423,7 @@ features: - Clang 16 - MSVC 14.44 - Xcode 16 + - R++ 2023.2 ftm: - name: __cpp_multidimensional_subscript value: 202211L @@ -1422,6 +1435,7 @@ features: - Clang 16 - MSVC 14.51 - Xcode 16 + - R++ 2024.2 ftm: - name: __cpp_constexpr value: 202211L @@ -1444,6 +1458,7 @@ features: - GCC 15 - Clang 17 - MSVC 14.28 + - R++ - desc: "Extending the lifetime of temporaries in range-based `for` loop initializer" paper: [P2644, P2718] diff --git a/features_cpp26.yaml b/features_cpp26.yaml index 9a06bbf..dbc2f36 100644 --- a/features_cpp26.yaml +++ b/features_cpp26.yaml @@ -76,6 +76,7 @@ features: - GCC 14 - Clang 18 - Xcode 16.3 + - R++ 2025.2 ftm: - name: __cpp_placeholder_variables value: 202306L @@ -597,6 +598,7 @@ features: - GCC 15 - Clang 19 - Xcode 16.3 + - R++ 2025.2 ftm: - name: __cpp_structured_bindings value: 202403L @@ -627,6 +629,7 @@ features: - GCC 15 - Clang 19 - Xcode 16.3 + - R++ 2025.2 ftm: - name: __cpp_deleted_function value: 202403L @@ -634,7 +637,7 @@ features: - desc: "Variadic friends" paper: P2893 summary: "Class templates can now declare all types in a parameter pack as friends." - support: [GCC 15, Clang 20, Xcode 26.4] + support: [GCC 15, Clang 20, Xcode 26.4, R++ 2025.2] ftm: - name: __cpp_variadic_friend value: 202403L @@ -792,6 +795,7 @@ features: note: "Supported as an extension, not fully conforming to standardized version." - Clang 21 - Xcode 26.4 + - R++ ftm: - name: __cpp_structured_bindings value: 202406L @@ -883,7 +887,7 @@ features: paper: P3068 summary: "Exceptions can now be thrown and caught during constant evaluation." content: constexpr-exceptions.md - support: [GCC 16] + support: [GCC 16, R++ 2026.2] ftm: - name: __cpp_constexpr_exceptions value: 202411L @@ -904,7 +908,7 @@ features: - desc: "[Structured bindings](https://cppreference.com/cpp/language/structured_binding) can introduce a pack" paper: P1061 summary: "Structured bindings can now capture remaining elements into a parameter pack." - support: [GCC 16, Clang 21, Xcode 26.4] + support: [GCC 16, Clang 21, Xcode 26.4, R++ 2025.3] ftm: - name: __cpp_structured_bindings value: 202411L @@ -1039,7 +1043,7 @@ features: - desc: "Contracts for C++ (``)" paper: P2900 summary: "Contracts let you specify preconditions, postconditions, and assertions that document and enforce function requirements." - support: [GCC 16] + support: [GCC 16, R++ 2025.3] ftm: - name: __cpp_contracts value: 202502L @@ -1056,6 +1060,8 @@ features: - desc: "Concept and variable-template template-parameters" paper: P2841 + support: + - R++ 2025.3 ftm: - name: __cpp_template_parameters value: 202502L @@ -1070,6 +1076,7 @@ features: note: "Supported as an extension.
Use the flag `-Wno-c23-extensions` to suppress warnings related to `#embed`.
Although this is a C++26 feature, this is available in Clang starting with C++20 (`-std=c++20`).
Clang does not define the `__cpp_pp_embed` feature-testing macro yet.\n" - tool: Xcode 16.3 note: "Supported as an extension.
Use the flag `-Wno-c23-extensions` to suppress warnings related to `#embed`.
Although this is a C++26 feature, this is available in Apple Clang starting with C++20 (`-std=c++20`).
Apple Clang does not define the `__cpp_pp_embed` feature-testing macro yet.\n" + - R++ 2026.1 ftm: - name: __cpp_pp_embed value: 202502L @@ -1306,7 +1313,7 @@ features: - desc: "Splicing a base class subobject" paper: P3293 - support: [GCC 16] + support: [GCC 16, R++ 2026.2] keywords: ["reflection"] - desc: "`define_static_{string,object,array}`" @@ -1322,7 +1329,7 @@ features: paper: P1306 summary: "`template for` iterates over compile-time ranges like tuples and reflection results." content: expansion-statements.md - support: [GCC 16] + support: [GCC 16, R++ 2025.3] ftm: - name: __cpp_expansion_statements value: 202506L From 10cb90ee0f7bc793d00981b2ce7e4270e3bb9682 Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 15:53:06 +0300 Subject: [PATCH 04/10] Add R++ C++26/29 features --- features_cpp26.yaml | 37 ++++++++++++++++++++++++++++++++----- features_cpp29.yaml | 20 ++++++++++++++++---- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/features_cpp26.yaml b/features_cpp26.yaml index dbc2f36..47a04e5 100644 --- a/features_cpp26.yaml +++ b/features_cpp26.yaml @@ -38,6 +38,7 @@ features: - GCC 14 - Clang 17 - Xcode 16.3 + - R++ ftm: - name: __cpp_constexpr value: 202306L @@ -52,7 +53,7 @@ features: - desc: "Static storage for braced initializers" paper: P2752 - support: [GCC 14] + support: [GCC 14, R++] - desc: "User-generated `static_assert` messages" paper: P2741 @@ -380,6 +381,7 @@ features: - GCC 9 - Clang 18 - Xcode 16.3 + - R++ - desc: "[Pack indexing](https://cppreference.com/cpp/language/pack_indexing)" paper: P2662 @@ -400,6 +402,8 @@ features: - GCC 14 - Clang 18 - Xcode 16.3 + - tool: R++ + status: unsupported - desc: "Saturation arithmetic" paper: [P0543, P4052] @@ -584,6 +588,8 @@ features: - GCC 14 - Clang 19 - Xcode 16.3 + - tool: R++ + status: unsupported - desc: "Clarifying rules for brace elision in [aggregate initialization](https://cppreference.com/cpp/language/aggregate_initialization)" paper: P3106 @@ -591,6 +597,7 @@ features: - GCC - Clang 17 - Xcode 16.3 + - R++ - desc: "Attributes for [structured bindings](https://cppreference.com/cpp/language/structured_binding)" paper: P0609 @@ -613,6 +620,7 @@ features: - GCC 14 - Clang 19 - Xcode 16.3 + - R++ content: trivial-infinite-loops.md keywords: ["safety"] @@ -777,10 +785,15 @@ features: - GCC 15 - Clang 19 - Xcode 16.3 + - R++ - desc: "Ordering of constraints involving fold expressions" paper: P2963 - support: [Clang 19, Xcode 16.3] + support: + - Clang 19 + - Xcode 16.3 + - tool: R++ + status: unsupported ftm: - name: __cpp_fold_expressions value: 202406L @@ -882,6 +895,7 @@ features: - tool: Clang 22 status: partial note: "References to `constexpr` and decomposition of tuple-like types are not supported (only arrays and aggregates are)." + - R++ - desc: "Allowing exception throwing in constant-evaluation (`constexpr` exceptions)" paper: P3068 @@ -903,6 +917,8 @@ features: - GCC 15 - Clang 20 - Xcode 16 + - tool: R++ + status: unsupported keywords: ["safety"] - desc: "[Structured bindings](https://cppreference.com/cpp/language/structured_binding) can introduce a pack" @@ -915,7 +931,12 @@ features: - desc: "The Oxford variadic comma" paper: P3176 - support: [GCC 15, Clang 20, Xcode 26.4] + support: + - GCC 15 + - Clang 20 + - Xcode 26.4 + - tool: R++ + status: unsupported summary: "Variadic ellipsis parameters (`...`) without a separating comma are deprecated, such as `int...`." content: oxford-variadic-comma.md @@ -1023,6 +1044,8 @@ features: - desc: "Trivial unions (was `std::uninitialized`)" paper: P3074 + support: + - R++ content: trivial-unions.md ftm: - name: __cpp_trivial_union @@ -1037,7 +1060,7 @@ features: - desc: "Partial program correctness (`std::observable()`)" paper: P1494 - support: [GCC 16] + support: [GCC 16, R++] keywords: ["safety"] - desc: "Contracts for C++ (``)" @@ -1343,7 +1366,11 @@ features: - desc: "`constexpr` virtual inheritance" paper: P3533 content: constexpr-virtual-inheritance.md - support: [GCC 16, Clang 24] + support: + - GCC 16 + - Clang 24 + - tool: R++ + status: unsupported ftm: - name: __cpp_constexpr_virtual_inheritance value: 202506L diff --git a/features_cpp29.yaml b/features_cpp29.yaml index ee4c1ea..f36a34e 100644 --- a/features_cpp29.yaml +++ b/features_cpp29.yaml @@ -2,7 +2,10 @@ features: - desc: "Designated-initializers for Base Classes" paper: P2287 - support: [GCC 17] + support: + - GCC 17 + - tool: R++ + status: unsupported ftm: - name: __cpp_designated_initializers value: 202606L @@ -13,10 +16,16 @@ features: - desc: "Defaulting Postfix Increment and Decrement Operations" paper: P3668 + support: + - tool: R++ + status: unsupported - desc: "Adding restrictions to defaulted assignment operator functions" paper: P2953 - support: [GCC 17] + support: + - GCC 17 + - tool: R++ + status: unsupported - desc: "Nondeterministic pointer provenance" paper: P2434 @@ -26,7 +35,7 @@ features: - desc: "Adjust identifier following new Unicode recommendations" paper: P3658 - support: [GCC 17, Clang 24] + support: [GCC 17, Clang 24, R++] - desc: "return_value & return_void Are Not Mutually Exclusive" paper: P3950 @@ -51,7 +60,10 @@ features: - desc: "Conditional noexcept specifiers in compound requirements" paper: P3822 - support: [GCC 17] + support: + - GCC 17 + - tool: R++ + status: unsupported ftm: - name: __cpp_concepts value: 202606L From b9844cb82a0cacfb6ba644b1cdbf28de8dd12d1c Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 16:09:50 +0300 Subject: [PATCH 05/10] Add R++ C++23 features --- features_cpp23.yaml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/features_cpp23.yaml b/features_cpp23.yaml index b30ab27..5192ef4 100644 --- a/features_cpp23.yaml +++ b/features_cpp23.yaml @@ -160,6 +160,7 @@ features: - Clang 13 - Xcode 13.4.1 - MSVC 14.50 + - R++ - desc: "Narrowing contextual conversions to `bool` (in `static_assert` and `constexpr if`)" paper: P1401 @@ -189,6 +190,7 @@ features: - Clang - MSVC 14.30 - Xcode + - R++ - desc: "Remove mixed wide string literal concatenation" paper: P2201 @@ -197,6 +199,8 @@ features: - Clang - MSVC 14.44 - Xcode + - tool: R++ + status: unsupported - desc: "`std::out_ptr()` and `std::inout_ptr()`" paper: P1132 @@ -404,6 +408,7 @@ features: - Clang 15 - MSVC 14.43 - Xcode 14.3 + - R++ ftm: - name: __cpp_constexpr value: 202110L @@ -436,6 +441,7 @@ features: - Clang - MSVC 14.30 - Xcode + - R++ - desc: "Add support for preprocessing directives `#elifdef` and `#elifndef`" paper: P2334 @@ -854,6 +860,7 @@ features: - Clang - MSVC 14.50 - Xcode 15 + - R++ - desc: "Remove non-encodable wide character literals and multicharacter wide character literals" paper: P2362 @@ -891,6 +898,7 @@ features: - Clang 19 - MSVC 14.51 - Xcode 16.3 + - R++ ftm: - name: __cpp_constexpr value: 202207L @@ -948,6 +956,7 @@ features: - GCC 14 - Clang 20 - MSVC 14.50 + - R++ keywords: ["constexpr"] - desc: "Requirements for optional extended floating-point types" @@ -970,11 +979,17 @@ features: - Clang 19 - MSVC 14.50 - Xcode 16.4 + - R++ - desc: "Class template argument deduction from inherited constructors" paper: P2582 summary: "Class template argument deduction works with inherited constructors." - support: [GCC 14, MSVC 14.51] + support: + - GCC 14 + - MSVC 14.51 + - tool: R++ + status: unsupported + issue: RSCPP-37818 - desc: "Attribute `[[assume]]`" paper: P1774 @@ -1014,6 +1029,7 @@ features: - Clang - MSVC 14.44 - Xcode 15 + - R++ - desc: "`std::mdspan`: a non-owning multidimensional array reference (``)" paper: [P0009, P2599, P2604, P2613, P2763] @@ -1448,6 +1464,7 @@ features: - Clang 17 - Xcode 16 - MSVC 14.52 + - R++ ftm: - name: __cpp_consteval value: 202211L @@ -1515,6 +1532,8 @@ features: - Clang 19 - MSVC 14.50 - Xcode 16.3 + - tool: R++ + status: unsupported - desc: "Stashing stashing iterators for proper flattening" paper: P2770 From eb219d5552b20999d6c6e0d5568a8ed8d6a02a5a Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 16:47:05 +0300 Subject: [PATCH 06/10] Add R++ C++20 features --- features_cpp20.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/features_cpp20.yaml b/features_cpp20.yaml index 5fa13da..bf691c6 100644 --- a/features_cpp20.yaml +++ b/features_cpp20.yaml @@ -16,6 +16,7 @@ features: - Clang 6 - MSVC 14.0 - Xcode 10 + - R++ - desc: "Allow lambda capture `[=, this]`" paper: P0409 @@ -24,6 +25,7 @@ features: - Clang 6 - MSVC 14.22 - Xcode 10 + - R++ - desc: "`__VA_OPT__`" paper: [P0306, P1042] @@ -82,6 +84,7 @@ features: - Clang 6 - MSVC 14.14 - Xcode + - R++ - desc: "Concepts" paper: P0734 @@ -161,6 +164,7 @@ features: - Clang 8 - MSVC 14.0 - Xcode 10.2 + - R++ - desc: "Specify when `constexpr` function definitions are needed for constant evaluation" paper: P0859 @@ -222,6 +226,7 @@ features: - Clang 14 - MSVC 14.26 - Xcode 14 + - R++ - desc: "Default constructible and assignable stateless lambdas" paper: P0624 @@ -247,6 +252,7 @@ features: - tool: Xcode 13.4.1 status: partial note: "Not supported: [temp.deduct/9]" + - R++ - desc: "Transformation trait `std::remove_cvref`" paper: P0550 @@ -558,6 +564,8 @@ features: - Clang 6 - MSVC 14.27 - Xcode 10 + - tool: R++ + status: unsupported ftm: - name: __cpp_impl_destroying_delete value: 201806L @@ -607,6 +615,8 @@ features: - Clang 10 - MSVC 14.22 - Xcode 12 + - tool: R++ + status: unsupported - desc: "Integrating feature-test macros" paper: P0941 @@ -797,6 +807,8 @@ features: - Clang 9 - MSVC 14.28 - Xcode 11.4 + - tool: R++ + status: unsupported - desc: "Signed integers are two's complement" paper: P1236 @@ -806,6 +818,7 @@ features: - Clang 9 - MSVC - Xcode 11.4 + - R++ - desc: "`char8_t`: A type for UTF-8 characters and strings" paper: P0482 @@ -902,6 +915,7 @@ features: - Clang 9 - MSVC 14.10 - Xcode 10.3 + - R++ ftm: - name: __cpp_constexpr value: 202002L @@ -1161,6 +1175,7 @@ features: - Clang 9 - MSVC 14.27 - Xcode 11.4 + - R++ - desc: "Modules" paper: [P1103, P1703, P1766, P1779, P1811, P1815, P1857, P1874, P1979, P2115, P2615, P2788] @@ -1333,6 +1348,7 @@ features: - Clang 16 - MSVC 14.28 - Xcode 16.3 + - R++ ftm: - name: __cpp_concepts value: 202002L @@ -1388,6 +1404,7 @@ features: - Clang 10 - MSVC 14.28 - Xcode 12 + - R++ - desc: "Permit conversions to arrays of unknown bound" paper: P0388 @@ -1396,6 +1413,8 @@ features: - Clang 14 - MSVC 14.27 - Xcode 14 + - tool: R++ + status: unsupported - desc: "`constinit`" paper: P1143 @@ -1427,6 +1446,7 @@ features: - Clang 9 - MSVC 14.24 - Xcode 11.4 + - R++ - desc: "Class template argument deduction for alias templates" paper: P1814 @@ -1436,6 +1456,7 @@ features: status: partial note: "This feature has been initially completed, but the feature macro `__cpp_deduction_guides` has not been updated." - MSVC 14.27 + - R++ ftm: - name: __cpp_deduction_guides value: 201907L @@ -1459,6 +1480,7 @@ features: - Clang 10 - MSVC 14.28 - Xcode 12 + - R++ ftm: - name: __cpp_constexpr_dynamic_alloc value: 201907L @@ -1702,6 +1724,7 @@ features: - Clang 10 - MSVC 14.25 - Xcode 12 + - R++ - desc: "Inconsistencies with constant template parameters" paper: P1907 @@ -1711,6 +1734,7 @@ features: - Clang 18 (partial) - MSVC 14.26 - Xcode 13.4.1 (partial) + - R++ ftm: - name: __cpp_nontype_template_args value: 201911L @@ -1762,6 +1786,7 @@ features: - Clang 10 - MSVC 14.25 - Xcode 12 + - R++ - desc: "`constexpr` for numeric algorithms" paper: P1645 @@ -1782,6 +1807,7 @@ features: - Clang 11 - MSVC - Xcode 12.5 + - R++ - desc: "Converting from `T*` to `bool` should be considered narrowing" paper: P1957 @@ -1792,6 +1818,7 @@ features: - Clang 18 - MSVC 14.27 - Xcode 13 + - R++ - desc: "`ranges::elements_view` needs its own sentinel" paper: P1994 From 4673c76f365e7a221201b9db7a4a083983cd9fcd Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 17:08:31 +0300 Subject: [PATCH 07/10] Add R++ C++17 features --- features_cpp17.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/features_cpp17.yaml b/features_cpp17.yaml index 652c8f5..74613bc 100644 --- a/features_cpp17.yaml +++ b/features_cpp17.yaml @@ -7,6 +7,7 @@ features: - Clang 3.8 - MSVC 14.0 - Xcode + - R++ - desc: "Allow `typename` in a template template parameter" paper: N4051 @@ -15,6 +16,7 @@ features: - Clang 3.5 - MSVC 14.0 - Xcode + - R++ - desc: "Removing trigraphs??!" paper: N4086 @@ -23,6 +25,7 @@ features: - Clang 3.5 - MSVC 10.0 - Xcode + - R++ - desc: "Nested `namespace` definition" paper: N4230 @@ -42,6 +45,7 @@ features: - Clang 2.5 - MSVC 14.10 - Xcode + - R++ ftm: - name: __cpp_static_assert value: 201411L @@ -73,6 +77,7 @@ features: - Clang 3.6 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_nontype_template_args value: 201411L @@ -101,6 +106,7 @@ features: - Clang 3.8 - MSVC 14.11 - Xcode + - R++ - desc: "Remove deprecated `operator++(bool)`" paper: P0002 @@ -109,6 +115,7 @@ features: - Clang 3.8 - MSVC 14.11 - Xcode + - R++ - desc: "Make exception specifications be part of the type system" paper: P0012 @@ -140,6 +147,8 @@ features: - tool: MSVC 14.14 note: "Not supported in C++14 mode." - Xcode + - tool: R++ + status: unsupported ftm: - name: __cpp_inheriting_constructors value: 201511L @@ -187,6 +196,7 @@ features: - Clang 3.9 - MSVC 14.11 - Xcode + - R++ - desc: "`constexpr` lambdas" paper: P0170 @@ -208,6 +218,7 @@ features: - Clang 3.9 - MSVC 14.10 - Xcode + - R++ ftm: - name: __cpp_range_based_for value: 201603L @@ -220,6 +231,7 @@ features: - Clang 3.9 - MSVC 14.10 - Xcode + - R++ - desc: "Attribute `[[nodiscard]]`" paper: P0189 @@ -308,6 +320,7 @@ features: - Clang 6 - MSVC 14.14 - Xcode + - R++ - desc: "Refining expression evaluation order for idiomatic C++" paper: P0145 @@ -316,6 +329,7 @@ features: - Clang 4 - MSVC 14.14 - Xcode + - R++ - desc: "Proposed wording for structured bindings" paper: P0217 @@ -338,6 +352,7 @@ features: - Clang 3.9 - MSVC 14.0 - Xcode + - R++ - desc: "`constexpr if` statements" paper: P0292 @@ -384,6 +399,7 @@ features: - Clang 4 - MSVC 14.12 - Xcode + - R++ - desc: "Pack expansions in `using`-declarations" paper: P0195 From 6494ea0467360e3a3b2ef74b1bc906cb28aa978c Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 17:15:58 +0300 Subject: [PATCH 08/10] Add R++ C++14 features --- features_cpp14.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/features_cpp14.yaml b/features_cpp14.yaml index a2fb1d3..18de3b6 100644 --- a/features_cpp14.yaml +++ b/features_cpp14.yaml @@ -7,6 +7,7 @@ features: - Clang 3.4 - MSVC 12.0 - Xcode + - R++ - desc: "[Binary literals](https://cppreference.com/cpp/language/integer_literal)" paper: N3472 @@ -88,6 +89,7 @@ features: - Clang 3.4 - MSVC 14.10 - Xcode + - R++ ftm: - name: __cpp_constexpr value: 201304L @@ -99,13 +101,14 @@ features: - Clang 3.3 - MSVC 14.10 - Xcode + - R++ ftm: - name: __cpp_aggregate_nsdmi value: 201304L - desc: "Omitting/extending [memory allocations](https://cppreference.com/cpp/language/new#Allocation)" paper: N3664 - support: [Clang 3.4, Xcode] + support: [Clang 3.4, Xcode, R++] - desc: "`[[deprecated]]` attribute" paper: N3760 @@ -126,6 +129,7 @@ features: - Clang 3.4 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_sized_deallocation value: 201309L From 327edd10c2a90569b4f55f41fb0612dc9a0518f5 Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 17:17:40 +0300 Subject: [PATCH 09/10] Add R++ C++11 features --- features_cpp11.yaml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/features_cpp11.yaml b/features_cpp11.yaml index 8837874..7026358 100644 --- a/features_cpp11.yaml +++ b/features_cpp11.yaml @@ -10,6 +10,7 @@ features: note: "Buggy variadic macros." - MSVC 14.26 - Xcode + - R++ - desc: "`static_assert`" paper: N1720 @@ -18,6 +19,7 @@ features: - Clang 2.9 - MSVC 10.0 - Xcode + - R++ ftm: - name: __cpp_static_assert value: 200410L @@ -29,6 +31,7 @@ features: - Clang - MSVC 8.0 - Xcode + - R++ - desc: "Extended `friend` declarations" paper: N1791 @@ -46,6 +49,7 @@ features: - Clang - MSVC 8.0 - Xcode + - R++ - desc: "[`auto`](https://cppreference.com/cpp/language/auto)" paper: N1984 @@ -55,6 +59,7 @@ features: - Clang - MSVC 10.0 - Xcode + - R++ - desc: "[Delegating constructors](https://cppreference.com/cpp/language/initializer_list#Delegating_constructor)" paper: N1986 @@ -85,6 +90,7 @@ features: - Clang 3.1 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_constexpr value: 200704L @@ -125,6 +131,7 @@ features: - Clang 3 - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_alias_templates value: 200704L @@ -145,6 +152,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ - desc: "Defaulted and deleted functions" paper: N2346 @@ -163,6 +171,7 @@ features: - Clang 2.9 - MSVC 11.0 - Xcode + - R++ - desc: "[Atomic operations](https://cppreference.com/cpp/atomic#Atomic_operations)" paper: N2427 @@ -181,6 +190,7 @@ features: - Clang 2.9 - MSVC 10.0 - Xcode + - R++ - desc: "Explicit [conversion operators](https://cppreference.com/cpp/language/cast_operator)" paper: N2437 @@ -264,6 +274,7 @@ features: - Clang 3 - MSVC 14.0 - Xcode + - R++ - desc: "[Variadic templates](https://cppreference.com/cpp/language/parameter_pack)" paper: [N2242, N2555] @@ -294,6 +305,7 @@ features: - Clang 2.9 - MSVC 10.0 - Xcode + - R++ - desc: "[Thread-local storage](https://cppreference.com/cpp/language/storage_duration)" paper: N2659 @@ -305,6 +317,7 @@ features: - MSVC 10.0 (partial) - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_threadsafe_static_init value: 200806L @@ -316,6 +329,7 @@ features: - Clang 2.9 - MSVC 14.0 - Xcode + - R++ ftm: - name: __cpp_threadsafe_static_init value: 200806L @@ -340,6 +354,7 @@ features: - Clang 3 - MSVC 12.0 - Xcode + - R++ ftm: - name: __cpp_nsdmi value: 200809L @@ -360,7 +375,11 @@ features: - desc: "`[[carries_dependency]]`" paper: [N2556, N2643] - support: [Clang 3.3, Xcode] + support: + - Clang 3.3 + - Xcode + - tool: R++ + status: unsupported ftm: - name: __has_cpp_attribute(carries_dependency) value: 200809L @@ -396,6 +415,7 @@ features: - MSVC 10.0 (partial) - MSVC 11.0 - Xcode + - R++ ftm: - name: __cpp_rvalue_references value: 200610L @@ -422,6 +442,7 @@ features: - Clang 3 - MSVC 11.0 - Xcode + - R++ ftm: - name: __cpp_range_based_for value: 200907L @@ -434,6 +455,7 @@ features: - Clang 3 - MSVC 14.0 - Xcode + - R++ - desc: "Defaulted move [special member functions](https://cppreference.com/cpp/language/member_functions#Special_member_functions)" paper: N3053 @@ -443,6 +465,7 @@ features: - Clang 3 - MSVC 14.0 - Xcode + - R++ - desc: "`override` and `final`" paper: [N2928, N3206, N3272] From ad9df70e87269f2ceb2a1d097a76a1dd3c881396 Mon Sep 17 00:00:00 2001 From: Alexander Karaev Date: Wed, 2 Sep 2026 17:31:22 +0300 Subject: [PATCH 10/10] Add R++ C23 features --- features_c23.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/features_c23.yaml b/features_c23.yaml index 404c0b0..d779496 100644 --- a/features_c23.yaml +++ b/features_c23.yaml @@ -7,6 +7,7 @@ features: - Clang 9 - MSVC - Xcode 11.4 + - R++ - desc: "`[[nodiscard]]`" paper: N2267 summary: "Marks a return value that should not be ignored." @@ -14,6 +15,7 @@ features: - GCC 10 - Clang 9 - Xcode 11.4 + - R++ content: c-nodiscard.md - desc: "`[[maybe_unused]]`" paper: N2270 @@ -21,12 +23,14 @@ features: - GCC 10 - Clang 9 - Xcode 11.4 + - R++ - desc: "`[[deprecated]]`" paper: N2334 support: - GCC 10 - Clang 9 - Xcode 11.4 + - R++ - desc: "[Attributes](https://cppreference.com/c/language/attributes)" paper: - N2335 @@ -36,6 +40,7 @@ features: - GCC 10 - Clang 9 - Xcode 11.4 + - R++ - desc: "IEEE 754 decimal floating-point types" paper: N2341 support: @@ -68,12 +73,14 @@ features: - GCC 11 - Clang 10 - Xcode 14 + - R++ - desc: "Unnamed parameters in function definitions" paper: N2480 support: - GCC 11 - Clang 11 - Xcode 13 + - R++ - desc: "[Labels](https://cppreference.com/c/language/statements#Labels) before declarations and end of blocks" paper: N2508 support: @@ -119,6 +126,7 @@ features: - GCC 11 - Clang 13 - Xcode 11.4 + - R++ - desc: "IEEE 754 interchange and extended types" paper: N2601 support: