Is this page anti-AI?
No. We build AI features and expect you to keep using whatever assistant you like. The argument is narrower: generation and verification are different jobs, and verification needs a tool that gives the same answer every time.
Does Visual Assist replace Copilot?
No, and it doesn't try to. VA and Copilot run side by side in Visual Studio. Copilot drafts; VA's parser is what you check the draft against.
What does "deterministic" actually mean here?
Given the same code, the parser produces the same model of it — same references, definitions, and rename scope — every run, every machine, every session. No sampling, no temperature, no variance.
What's an example of an AI model getting C++ wrong?
Common ones: picking the wrong overload when several match (a string literal preferring bool over std::string is a classic), suggesting a member or API that doesn't exist on that type, mishandling smart-pointer ownership so something is freed twice or never, and "updating" a call to a signature from a different library version. Each can look completely reasonable in the diff.
If the code compiles, isn't it fine?
No. In C++ a clean compile says the syntax is valid, not that the behavior is correct. Use-after-free, dangling references, integer overflow, and plain logic errors all compile happily and surface at runtime — often only under load. Compiles isn't correct.
Can't I just ask the AI to find every use of a symbol?
You can, but you won't know if the list is complete. A model returns a plausible set and may miss uses in macros, templates, or files it didn't look at — and it can return a different set next time. A parser walks the whole translation set and gives you the full count, the same one every run.