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.