このページはAIに反対する内容ですか?
いいえ。私たちはAI機能を開発しており、ユーザーが好きなアシスタントを使い続けることを期待しています。議論の焦点はもっと狭く、生成と検証は異なる作業であり、検証には毎回同じ答えを返すツールが必要だということです。
ビジュアルアシストはコパイロットに取って代わるものですか?
いいえ、そうしようともしません。VAとCopilotはVisual Studio内で並行して動作します。Copilotはドラフトを作成し、VAのパーサーはそのドラフトをチェックするために使用されます。
ここでいう「決定論的」とは、具体的にどういう意味でしょうか?
同じコードが与えられた場合、パーサーは実行ごと、マシンごと、セッションごとに、同じ参照、定義、名前変更範囲といった同じモデルを生成します。サンプリングも、温度変化も、ばらつきもありません。
AIモデルがC++を誤って解釈した例を教えてください。
よくある例としては、複数のオーバーロードが一致する場合に間違ったオーバーロードを選択する(文字列リテラルで を優先するbool例std::stringは典型的)、その型に存在しないメンバーや API を提案する、スマートポインタの所有権を誤って処理して何かが二重に解放されたり、全く解放されなかったりする、異なるライブラリバージョンのシグネチャへの呼び出しを「更新」する、などが挙げられます。これらのいずれも、差分表示では全く問題ないように見える可能性があります。
コードがコンパイルできるなら、問題ないんじゃないですか?
いいえ。C++では、コンパイルが成功するということは構文が有効であるということであって、動作が正しいということではありません。解放済みメモリの使用、ダングリング参照、整数オーバーフロー、単純な論理エラーなどはすべてコンパイル時に問題なく発生し、実行時に表面化します。多くの場合、負荷がかかった状態でのみ発生します。コンパイルが成功するという表現は正しくありません。
AIに記号のすべての使用箇所を検索させることはできないのでしょうか?
可能ですが、リストが完全かどうかはわかりません。モデルは妥当なセットを返しますが、マクロ、テンプレート、または参照していないファイルでの使用箇所を見落とす可能性があり、次回は異なるセットを返すこともあります。パーサーは翻訳セット全体を走査し、実行ごとに同じ完全なカウントを返します。