ReSharper C++ 与 Visual Assist

本文说明 ReSharper C++ 与 Whole Tomato 的 Visual Assist 之差异。

由于两款产品都在积极地开发中,它们的功能会定期发生变化,此比较只针对比较表的标题中显示的这些特定版本。

如果您在表中发现不准确的条目,请在下方留下意见告知我们,我们将尽快更新此表。

在 Visual Studio 2019 + Visual Assist Build 2024.8(2537)中

在 Visual Studio 2022 + ReSharper C++ 2024.3 中

支持的 Visual Studio 版本
Visual Studio 2022
Visual Studio 2022
Visual Studio 2019
Visual Studio 2019
Visual Studio 2017
Visual Studio 2017
Visual Studio 2015
Visual Studio 2015
Visual Studio 2013
Visual Studio 2013
Visual Studio 2012
Visual Studio 2012
Visual Studio 2010
Visual Studio 2010
Visual Studio 2008
Visual Studio 2005
支持的 C/C++ 规范
C/C++
C/C++
C++/CLI
CUDA 源文件
代码问题检测
高亮显示未解析的符号
使用注释抑制代码检查
使用注释抑制代码检查
递归调用的装订区域标记
代码问题的快速修复
编码辅助
高亮显示成对的项(包含宏和 printfboost::format 中的格式参数)
语法高亮显示 (20 种不同的标识符)
按 Enter 自动扩展并在多行 /**//// 注释中创建文档存根
输入 /// 时生成 Doxygen 注释
高亮显示匹配的词(代码和注释)
自动高亮显示函数出口
代码样式辅助
粘贴后格式化(格式化规则继承自 Visual Studio
在任何范围内应用格式化规则(使用 ReSharper C++ 自有的广泛格式化规则集)
应用代码样式,使用代码清理在任何范围内移除代码冗余
适用于生成代码中的 constvolatile 修饰符的可配置样式
适用于生成代码中 #include 指令的可配置样式
适用于生成代码中的默认指针初始值设定项 (0|nullptr|NULL) 的可配置样式
重构和代码转换
封装字段(使用生成 getter 和 setter 操作)
添加/移除大括号
对逻辑表达式求反
移动函数定义
移动类
在实例和指针之间相互转换
简化实例声明
在源中排序方法
将 Lambda 提升到方法
向函数增加 = default= deletepurevirtual 说明符
排列 cv 限定符
?: 转换为 if 及其反向操作
直接将 #include 指令从尖括号转换为引号及其反向操作
将调用转换为管道及其反向操作
将子句转换为形参约束
将 typedef 声明转换为别名声明及其反向操作
转换为嵌套命名空间定义
在常规返回值类型和尾随返回值类型之间相互转换
创建派生类型:类、接口、结构、接口类、接口结构、引用类、引用结构
翻转关系运算符
翻转运算符实参
通过构造函数形参初始化字段
反转 if 语句,反转 ?: 条件
将 'auto' 替换为显式类型声明
将 'decltype' 替换为基础类型
将 'decltype(auto)' 替换为显式类型声明
拆分或合并具有多个声明的声明
替换宏调用
替换模板类型别名
显式指定模板实参
替换 typedef(也可以替换所有嵌套 typedef)
UNREFERENCED_PARAMETER 替换为 [[maybe_unused]]
将字符串转换为 C++11 原始字符串并转回
将模板形参约束移至 requires 子句
代码生成
创建派生类型
代码段/模板
创建文件(需要对头文件和 cpp 调用两次)
导航和搜索
转到声明(使用 Goto
转到实现(使用 Goto
调试
暂时禁用已启用的全部断点
暂时将所有断点绑定到当前线程
Unreal Engine
从导航中排除引擎源
从索引中排除引擎源
UE4 远程过程调用支持
单元测试
Google TestCatch 2.5Boost.Testdoctest 框架的<单元测试辅助
设置管理
其他
本地化 GUI(中文、日语、韩语)