ReSharper C++ 2025.1 最新变化

ReSharper C++ 2025.1 改进了 constexpr 求值功能,并增加了对新 GNU 语言扩展的支持,以帮助跨平台开发。 其他更新包括新的 Inline Macro(内联宏)重构、增强的 GoogleTest 支持以及 Clang-Tidy 与 ARM 平台的兼容性。 Unreal Engine 开发者还将在具有大量蓝图的项目中获得更好的内存利用率。

语言功能

ReSharper C++ 2025.1 引入了对多种新的 GNU 语言扩展的支持,包括:

  • 省略操作数的条件语句
  • #import 指令
  • _Float16__bf16__float128 浮点类型
  • 局部标签
  • 指定初始值设定项范围语法

此外,ReSharper C++ 现在支持 C23 中的十进制浮点类型。

我们改进了 constexpr 求值引擎的功能。 ReSharper C++ 现在可以求算包含 switch 语句的 constexpr 函数、带有初始值设定项的 if 语句、结构化绑定和简单的默认初始化。 C++20 中的默认 operator== 也可以求算。

Unreal Engine

我们在 ReSharper C++ 2025.1 中重点优化了蓝图相关功能的内存利用率。 由于缓存数据被卸载到磁盘,具有大量蓝图的项目将受益于显著减少的内存使用量,从而提高整体性能。

此外,ReSharper C++ 现在将识别并高亮显示 UMETAUPARAM 反射宏,为这些宏及其特性提供代码补全和工具提示文档。

如果您对用于 Unreal Engine 开发的独立跨平台 IDE 感兴趣,请选择 Rider。 Rider 中的 Unreal Engine 支持与 ReSharper C++ 保持一致,您可以在 Rider 2025.1 更新中期待相同改进。

Inline Macro(内联宏)重构

新的 Inline Macro(内联宏)重构可以让您轻松替换代码中宏的所有用法。 重构还将报告宏主体和宏实参中需要手动审查的潜在用法。

编码辅助

改进的 Switch Header/Source(切换头/源)操作现在不仅建议具有匹配名称的文件,还会建议包含当前文件中函数的声明或定义的文件,以便导航。

__declspec(property) 特性内的函数引用现在可以正确高亮显示,通过 Find Usages(查找用法)检测,并在 Rename(重命名)重构期间更新。

新的 Redundant forward declaration(冗余前向声明)检查可以检测同一文件中的重复前向类声明,并提供快速修复进行清理。

Clang-Tidy

ReSharper C++ 2025.1 将捆绑的 Clang-Tidy 更新到 Clang 20,带来最新 LLVM 版本中的最新检查和增强。 此更新还改进了 ARM 平台支持,并包含用于 Windows ARM 的捆绑 Clang-Tidy 二进制文件。

现在,Clang-Tidy 检查在 Inspection Severity(检查严重性)设置页面中按前缀分组,让您更容易导航到特定检查并快速启用或禁用整个检查组。

GoogleTest

ReSharper C++ 2025.1 为 GoogleTest 支持带来多项更新。 运行值和类型参数化测试时,特定值和类型的测试用例现在分组到各自参数化测试下,使测试结果更加结构化和可读。

现在可以从源代码中发现参数化测试而无需执行。 因此,您现在可以使用装订区域图标和上下文操作直接从编辑器运行整个测试套件和单独的参数化测试。

查看 ReSharper 最新变化页面,了解此版本中引入的所有其他更改。