Unsere Position

KI kann Ihren C++-Code schreiben.
Die Überprüfung liegt in Ihrer Verantwortung.

Und es gibt täglich mehr zu überprüfen. Visual Assist verwendet einen deterministischen Parser – ein Tool, das niemals rät. Fragt man nach dem Speicherort eines Symbols, ist die Antwort jedes Mal und auf jedem Rechner identisch.

Eine detaillierte schematische Darstellung einer großen C++-Codebasis. Von einem einzelnen QUERY-Knoten führt ein grüner Pfad direkt zu einem einzigen Endpunkt mit der Bezeichnung SAME ANSWER, während mehrere rote Pfade zu verschiedenen Endpunkten mit den Bezeichnungen RUN 1, RUN 2, RUN 3 abzweigen.
Dieselbe Frage, dargestellt anhand einer realen Codebasis. Ein grüner Pfad führt zu einer einzigen Antwort; die roten Pfade verstreuen sich – jedes Mal ein anderes Ergebnis.

KI-Tools haben sich ihren Platz verdient

Dies ist kein Plädoyer gegen KI. Wir liefern sie selbst aus. VA Intelligence führt lokale Modelle innerhalb von Visual Studio aus, und aufgerufene, bereichsbezogene KI ist tatsächlich nützlich zum Lesen und Ändern von C++.

Man kann es kaum verdenken, wenn jemand auf diese Tools zurückgreift. Sie verkürzen die Arbeit am leeren Blatt, erklären unbekannten Code schnell und sind für die frühe Prototypentwicklung wirklich nützlich. Geschwindigkeit ist ein echter Vorteil, und die Branche hat dies entsprechend honoriert.

Das Problem beginnt, wenn Geschwindigkeit mit Gewissheit verwechselt wird.

Wie die beiden zusammenpassen

Beide, absichtlich

Hier das gesamte Modell in Kürze: Die KI erstellt Entwürfe, der Parser überprüft sie, Sie entscheiden. Das sind zwei unterschiedliche Aufgaben, und Visual Assist ist als Überprüfungskomponente konzipiert und ergänzt Ihre bereits eingesetzte KI.

Generation AI ist gut in Überprüfung: Der Parser ist gut in
Erklärung unbekannten CodesExakte Navigation zu jeder beliebigen Definition
Ausarbeitung einer UmsetzungVollständige Referenzerkennung – jede Verwendung wird gezählt
Erste Lösungsansätze und StandardvorlagenSicheres, projektweites Refactoring
Zusammenfassend lässt sich sagen, was ein Block bewirkt.Deterministisches Verständnis – immer dasselbe Ergebnis.
ONE WORK SESSION → MODEL invoked when you ask drafts drafts context context PARSER always on · your code's ground truth
Der Parser läuft die gesamte Sitzung durch; das Modell erscheint erst, wenn Sie es aufrufen und bezieht seinen Kontext aus dieser Zeile. Sie bleiben der Entwickler – nichts wird automatisch angewendet.
Gewissheit, definiert

Was ein Parser mit Sicherheit weiß

Visual Assist analysiert Ihren aktuellen C++-Code (Symbole, Gültigkeitsbereiche, Typen) und aktualisiert die Darstellung während der Eingabe. Alle angezeigten Informationen sind Fakten über Ihren Code im aktuellen Zustand und keine Vorhersagen.

Referenzen finden

Jede einzelne Referenz wurde gezählt. Die Gesamtzahl ist die Gesamtzahl, keine Stichprobe.

Umbenennen

Es greift jede Anspielung auf oder sagt Ihnen, dass es nicht geht. Nichts wird stillschweigend übersehen.

Zur Definition

Trifft die Definition, selbst in Code mit vielen Makros oder während der Bearbeitung.

Ein konkreter

Bittet man ein Modell, alle Verwendungen eines Begriffs zu finden MAX_PLAYERS, erhält man eine plausible Liste, der man nicht vollständig vertrauen kann und die sich bei der nächsten Anfrage ändern kann. Visual Assist liefert 746 Ergebnisse in 69 Dateien. Fragt man morgen erneut, erhält man wieder 746 Ergebnisse.

Ergebnisse der visuellen Hilfe: Referenzsuche zeigt 746 Referenzen in 69 Dateien für das Symbol MAX_PLAYERS an.
Referenzen zu einem Symbol in einer über 700 Dateien umfassenden Spielcodebasis finden: 746 Referenzen in 69 Dateien. Jedes Mal eine vollständige Zählung.
Probieren Sie Visual Assist aus.
30 Tage kostenlos testen · Keine Kreditkarte erforderlich
Der Motor

Unter der Haube: der parallele Parser

Dies ist der Abschnitt, in dem wir ins Detail gehen – der Parser ist der Teil von Visual Assist, über den wir selten öffentlich sprechen, und er ist es, der die Gewissheit ermöglicht.

Parallel + inkrementell

VA verwendet einen eigenen Parser, der die Eingaben auf mehreren Kernen verarbeitet und während der Eingabe neu analysiert. Der Index bleibt dabei stets aktuell.

Entwickelt für Code-Intelligenz

Es muss Ihren Code nicht erstellen, sondern ihn nur verstehen – daher überspringt es, was einen Compiler zum Absturz bringt, und löst weiterhin Symbole in fragmentiertem, nicht kompilierbarem Code auf.

Ein Algorithmus, kein Modell

Keine Probenahme, keine Temperaturmessung. Derselbe Code liefert dasselbe Ergebnis, es handelt sich also um eine überprüfbare Tatsache und nicht um eine Vermutung.

IntelliSense setzt auf ein Compiler-Frontend: präzise bei sauberem Code, aber fehleranfällig und langsam bei unübersichtlichem. Visual Assist verfolgte vor Jahren den gegenteiligen Ansatz – deshalb nutzten Entwickler es in der Unreal Engine und im Shader-Code, bevor diese offiziell unterstützt wurden. KI hat an diesem Ansatz nichts geändert. Sie hat die Anforderungen lediglich erhöht.

Genau diesen Parser will VA Intelligence weiterentwickeln – mit mehr kontextbezogenen Funktionen, wobei der Parser dem Modell ein umfassenderes Verständnis Ihres Projekts vermittelt.

Lesen Sie die Position des VA-Geheimdienstes.

Der andere Weg

Plausibel ist nicht verifiziert

Ein Modell liefert den wahrscheinlichsten Code. Wahrscheinlich ist nicht gleichbedeutend mit korrekt, und in C++ liegt genau in dieser Diskrepanz die Fehlerquelle. Hier ein Beispiel, das echten Teams Probleme bereitet:

// Im Quellcode existieren zwei Überladungen:
void log( const std::string& message);
void log( bool ok);

// Die KI schreibt das. Es wird kompiliert. Wird es ausgeliefert?
log( "Verbindung verloren" );

// Ein Stringliteral ist ein const char*, und
// const char* -> bool schlägt const char* -> std::string.
// Dies ruft also log(bool) auf. Du hast gerade `true` protokolliert.
Eine echte Tücke bei der Überladungsauflösung. Der Aufruf sieht offensichtlich korrekt aus, lässt sich problemlos kompilieren und führt die falsche Funktion aus. „Gehe zu Definition“ landet bei der Überladung, die tatsächlich aufgelöst wird – so erkennt man den Fehler mit einem Klick.

Die falsche Überlastung

Lässt sich fehlerfrei kompilieren. Ruft die Funktion auf, die Sie nicht gemeint haben.

Das schlechte Leben

Sieht in der Überprüfung gut aus. Hängt in der Produktion.

Die stillen Darsteller

Erstellt ohne Vorwarnung. Zerstört den Zustand um 2 Uhr morgens.

In einfacher Sprache

Ein LLM-Absolvent hat ein sehr gutes Gespür für Details. Er weiß genau, was man für einen ersten Entwurf braucht, und genau das, was man für eine kurz vor der Auslieferung stehende Version nicht mehr braucht.

Lesen Sie: Was ist real, was ist Hype und wo passt C++ hinein?

Unterstützende Beweise

Der Überprüfungsaufwand nimmt zu

KI hat die Qualitätsarbeit nicht beseitigt. Sie hat sie lediglich nachgelagert verlagert , hin zu demjenigen, der die Unterschiede liest – und davon gibt es messbar mehr.

≈ 20%
schneller – das erwarteten sie.
gemessen ↓
≈ 19%
langsamer – was geschah

In METRs randomisierter Studie von 2025 erledigten erfahrene Entwickler, die KI für ihnen gut bekannten Code nutzten, Aufgaben 19 % langsamer als ohne – obwohl sie glaubten, schneller gewesen zu sein. Die zusätzliche Zeit entfiel auf Überprüfung, Korrektur und erneute Eingabeaufforderung. Die Schlussfolgerung lautet nicht: „KI ist langsam“, sondern: Verifizierung ist eine reale und zunehmende Aufgabe.

Quelle: METR.org — RCT, 16 Entwickler, 246 Aufgaben

Eine Rezension zu schreiben bedeutet vor allem, einfache Fragen mit Sicherheit zu beantworten:

  • Wer ruft diese Funktion auf?
  • Wird dieses Symbol heute noch irgendwo verwendet?
  • Was genau betrifft diese Änderung?

Diese liefern exakte Antworten. Je mehr generierter Code Sie einbeziehen, desto stärker stützt sich Ihre Überprüfung auf Tools, die nicht raten.

Die ganze Geschichte: Fragen Sie noch einmal.

Setzen Sie Visual Assist bei Ihrem größten Projekt ein und stellen Sie zwei Tage hintereinander dieselbe Frage. Sie erhalten garantiert immer dieselbe Antwort.

Probieren Sie Visual Assist aus.
30 Tage kostenlos testen · Keine Kreditkarte erforderlich
Mehr als 1,5 Millionen Installationen im Visual Studio Marketplace

Häufig gestellte Fragen

Ist diese Seite KI-feindlich?

Nein. Wir entwickeln KI-Funktionen und erwarten, dass Sie weiterhin Ihren bevorzugten Assistenten nutzen. Die Argumentation ist enger gefasst: Generierung und Verifizierung sind unterschiedliche Aufgaben, und die Verifizierung benötigt ein Werkzeug, das stets dasselbe Ergebnis liefert.

Ersetzt Visual Assist den Copiloten?

Nein, und das ist auch nicht beabsichtigt. Visual Studio und Copilot laufen parallel in Visual Studio. Copilot erstellt Entwürfe; der Parser von Visual Studio dient dann zur Überprüfung dieser Entwürfe.

Was bedeutet „deterministisch“ hier genau?

Bei gleichem Code erzeugt der Parser bei jedem Durchlauf, auf jeder Maschine und in jeder Sitzung dasselbe Modell – dieselben Referenzen, Definitionen und denselben Umbenennungsbereich. Keine Stichproben, keine Temperaturvarianz, keine Abweichungen.

Nennen Sie ein Beispiel für ein KI-Modell, das C++ falsch implementiert.

Häufige Fehler: die falsche Überladung auswählen, wenn mehrere übereinstimmen (ein klassisches Beispiel ist die Bevorzugung eines String-Literals boolgegenüber std::stringeinem anderen Typ), ein Element oder eine API vorschlagen, die für diesen Typ nicht existiert, fehlerhafte Behandlung der Smart-Pointer-Besitzverhältnisse, sodass etwas doppelt oder gar nicht freigegeben wird, und einen Aufruf einer Signatur aus einer anderen Bibliotheksversion „aktualisieren“. Jeder dieser Fehler kann im Diff völlig plausibel erscheinen.

Wenn der Code kompiliert, ist doch alles in Ordnung, oder?

Nein. In C++ bedeutet ein fehlerfreier Kompilierungsvorgang lediglich, dass die Syntax gültig ist, nicht aber, dass das Verhalten korrekt ist. Use-After-Free-Fehler, hängende Referenzen, Integer-Überläufe und einfache Logikfehler lassen sich problemlos kompilieren und treten erst zur Laufzeit auf – oft erst unter Last. „Kompiliert“ ist also nicht gleichbedeutend mit „korrekt“.

Kann ich die KI nicht einfach bitten, jede Verwendung eines Symbols zu finden?

Das ist möglich, aber Sie wissen nicht, ob die Liste vollständig ist. Ein Modell liefert eine plausible Menge und kann Verwendungen in Makros, Vorlagen oder nicht berücksichtigten Dateien übersehen – und es kann beim nächsten Durchlauf eine andere Menge liefern. Ein Parser durchläuft die gesamte Übersetzungsmenge und gibt Ihnen die vollständige Anzahl zurück, die bei jedem Durchlauf gleich bleibt.