VS6 does not compile code according to the current C/C++ standard. For example,
- it has incorrect (outdated) scoping rules for loops. At least one MSFT SDK have been updated now with code that expects the correct semantics, so the SDK won't even compile with VS6 any more.
- It has trouble being able to compile all but the most trivial template constructs.
- It will compile some template constructs that have been declared illegal in recent standards updates (because the constructs don't actually do what normal users expect).