ReSharper C++ und Visual Assist im Vergleich

Dieses Dokument enthält eine Beschreibung der Unterschiede zwischen ReSharper C++ und Visual Assist von Whole Tomato.

Da beide Produkte aktiv weiterentwickelt werden und ihre Funktionalität regelmäßig überarbeitet wird, weisen wir darauf hin, dass dieser Vergleich nur für bestimmte Versionen relevant ist, die in der Kopfzeile der Vergleichstabelle angegeben sind.

Wenn Sie Elemente in dieser Tabelle finden, die nicht zutreffen, schreiben Sie uns bitte einen Kommentar, damit wir die Tabelle aktualisieren können.

in Visual Studio 2019 + Visual Assist-Build 2024.8 (2537)

in Visual Studio 2022 + ReSharper C++ 2024.3

Unterstützte Versionen von 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
Unterstützte Spezifikationen von C/C++
C/C++
C/C++
C++/CLI
CUDA-Quellcodedateien
Erkennen von Problemen im Code
Hervorheben nicht aufgelöster Symbole
Unterdrückung von Codeinspektionen durch Kommentare
Unterdrückung von Codeinspektionen durch Kommentare
Randleistenmarkierungen für rekursive Aufrufe
Quick-Fixes für Codeprobleme
Programmierhilfen
Hervorhebung gepaarter Elemente (einschließlich von Makros und Formatargumenten in printf und boost::format)
Syntaxhervorhebung (20 verschiedene Bezeichnerarten)
Automatisches Erweitern und Erstellen von Dokumentationsgerüsten mit Enter-Taste in mehrzeiligen/**/ und einzeiligen /// Kommentaren
Generieren von Doxygen-Kommentaren bei der Eingabe von ///
Automatische Hervorhebung von Funktionsausstiegen
Codestilunterstützung
Formatieren nach Einfügen (Formatierungsregeln stammen von Visual Studio)
Formatierungsregeln auf einen beliebigen Bereich anwenden (mit der eigenen umfangreichen Sammlung an Formatierungsregeln von ReSharper C++)
Mit der Codebereinigung Codestile anwenden und Coderedundanzen in einem beliebigen Bereich entfernen
Konfigurierbarer Stil für die Modifizierer const und volatile in generiertem Code
Konfigurierbarer Stil für #include-Direktiven in generiertem Code
Konfigurierbarer Stil für Standardinitialisierer von Zeigern (0|nullptr|NULL) in generiertem Code
Refaktorierungen und Codetransformationen
Feld verkapseln (mit der Aktion Getter und Setter generieren)
Geschweifte Klammern hinzufügen/entfernen
Logischen Ausdruck negieren
Funktionsdefinitionen verschieben
Klasse verschieben
Convert Instance to Pointer und umgekehrt
Simplify Instance Declaration
Methoden in Quelle sortieren
Lambda in Methode umwandeln
Die Spezifizierer = default, = delete, pure oder virtual zu einer Funktion hinzufügen
cv-Modifikatoren anordnen
Convert ?: to if und umgekehrt
Konvertiere #include-Direktive von Winkelklammer zu Anführungszeichen und umgekehrt
Konvertieren zwischen Aufrufen und Pipes
Umwandeln von Klausel in Parametereinschränkung
Typedef-Deklaration zu Alias-Deklaration konvertieren und umgekehrt
In verschachtelte Namespace-Definition konvertieren
Regulären Rückgabetyp zu nachgestelltem Rückgabetyp konvertieren und umgekehrt
Abgeleiteten Typ erstellen: Klasse, Schnittstelle, Struktur, Schnittstellenklasse, Schnittstellenstruktur, Verweisklasse, Verweisstruktur
Relationalen Operator spiegeln
Operatorargumente spiegeln
Feld anhand von Konstruktorparametern initialisieren
Umkehrung von if-Ausdrücken und ?:-Bedingungen
„auto“ durch explizite Typdeklaration ersetzen
„decltype“ durch den zugrunde liegenden Typ ersetzen
„decltype(auto)“ durch explizite Typdeklaration ersetzen
Deklaration teilen oder mit mehreren Deklarationen verknüpfen
Makroaufruf ersetzen
Vorlagen-Typalias ersetzen
Vorlagenargumente explizit angeben
typedef ersetzen (und optional alle geschachtelten typedefs)
Ersetzen von UNREFERENCED_PARAMETER durch [[maybe_unused]]
Konvertieren zwischen Strings und C++11-Raw-Strings
Templateparameter-Einschränkung in requires-Klausel verschieben
Codegenerierung
Abgeleiteten Typ erstellen
Codeausschnitte/-vorlagen
Datei erstellen (muss zweimal für Header und cpp aufgerufen werden)
Navigation & Suche
Gehe zu Deklaration (mit Goto)
Zur Implementierung wechseln (mit Goto)
Debugging
Temporär alle aktivierten Haltepunkte deaktivieren
Temporär alle Haltepunkte an den aktuellen Thread binden
Unreal Engine
Engine-Quelle von Navigation ausschließen
Engine-Quelle von der Indizierung ausschließen
Unterstützung für UE4-Remoteprozeduraufrufe
Unterstützung des Unreal-Engine-Testframeworks
Unit-Tests
Unit-Test-Unterstützung für Google Test-, Catch 2.5-, Boost.Test- und doctest-Frameworks
Verwaltung der Einstellungen
Verschiedenes
Lokalisierte Bedienoberfläche (Chinesisch, Japanisch, Koreanisch)