ReSharper C++ frente a Visual Assist

Este documento describe en qué se diferencia ReSharper C++ de Visual Assist de Whole Tomato.

Como ambos productos se están desarrollando activamente y su funcionalidad cambia regularmente, consideramos que esta comparación es válida para versiones específicas que se indican en el encabezado de la tabla de comparación.

Si descubre algún elemento incorrecto en esta tabla, deje un comentario abajo para informarnos y actualizaremos la tabla lo antes posible.

en Visual Studio 2019 + Visual Assist Build 2024.8 (2537)

en Visual Studio 2022 + ReSharper C++ 2024.3

Versiones compatibles de 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
Especificaciones de compatibilidad con C/C++
C/C++
C/C++
C++/CLI
Archivos fuente CUDA
Detección de incidencias de código
Resaltar símbolos sin resolver
Suprimir inspecciones de código con comentarios
Suprimir inspecciones de código con comentarios
Marcas para llamadas recursivas en el medianil
Arreglos rápidos para problemas de código
Asistencia a la codificación
Resaltar elementos emparejados (incluidos macros y argumentos de formato en printf y boost::format)
Resaltado de sintaxis (20 tipos diferentes de indentificadores)
Ampliación automática y creación de stubs de documentación en comentarios multilínea/**/ y /// al pulsar Intro
Generar un comentario Doxygen al escribir ///
Resaltar palabras coincidentes (código y comentarios)
Resaltado automático de salidas de función
Asistencia de estilo de código
Formatear despues de pegar (Las reglas de formateo se heredan de Visual Studio)
Aplicar reglas de formateo en cualquier ámbito (con el extenso conjunto de reglas de formateo de ReSharper C++)
Aplicar estilos de código y eliminar redundancias de código en cualquier ámbito con limpieza de código
Estilo configurable para modificadores const y volatile en el código generado
Estilo configurable para directivas #include en el código generado
Estilo configurable para inicializadores de puntero predeterminados (0|nullptr|NULL) en el código generado
Refactorizaciones y transformaciones de código
Encapsular campo (con la acción Generate getters and setters)
Añadir/Quitar llaves
Negar expresiones lógicas
Mover las definiciones de la función
Mover la clase
Convertir Instancia a Pointer y viceversa
Simplificar instancia de declaración
Métodos de ordenación en el código fuente
Promover lambda a método
Añadir especificadores a una función = default, = delete, pure o virtual
Organizar los calificadores cv
Convertir ?: a if y viceversa
Convertir la directiva #include de corchetes a comillas y viceversa
Convertir una llamada en tubería y viceversa
Convertir una cláusula en una restricción de parámetro
Convertir una declaración typedef en una declaración alias y viceversa
Convertir a definición de espacio de nombres anidado
Convertir puntos regulares a puntos seguidos y viceversa
Crear tipos derivados: clase, interfaz, estructura, clase de interfaz, estructura de interfaz, clase de referencia, estructura de referencia
Intercambiar operadores relacionales
Intercambiar argumentos de operadores
Inicializar campos desde los parámetros de los constructores
Invertir la declaración if, Invertir la condición?:
Reemplazar 'auto' por declaración de tipo explícito
Reemplazar 'decltype' con el tipo subyacente
Reemplazar 'decltype(auto)' por declaración de tipo explícito
Dividir o unir declaración con declaraciones múltiples
Sustituir llamada a macro
Sustituir tipo de alias de plantilla
Especificar argumentos explícitos de plantilla
Sustituir typedef (y, opcionalmete, todos los typedefs anidados)
Sustituir UNREFERENCED_PARAMETER por [[maybe_unused]]
Convertir una cadena en una cadena sin procesar C++11 y viceversa
Mover la restricción del parámetro de la plantilla a la cláusularequires
Generación de código
Crear tipo derivado
Fragmentos de código/plantillas
Crear archivo (necesita ser llamado dos veces para encabezado y cpp)
Navegación y búsqueda
Ir a declaración (con Goto)
Ir a implementación (con Goto)
Depuración
Desactivar temporalmente todos los puntos de interrupción habilitados
Vincular temporalmente todos los puntos de interrupción al hilo actual
Unreal Engine
Excluir de la navegación el código fuente del motor
Excluir de la indexación el código fuente del motor
Compatibilidad con llamadas a procedimiento remoto de UE4
Pruebas de unidades
Ayuda en pruebas de unidades para los marcos de trabajo Google Test, Catch 2.5, Boost.Test y doctest
Gestión de configuraciones
Otros
Interfaz de usuario gráfica traducida (chino, japonés y coreano)