No, it's time to say goodbye to him ten years ago. Here are a few reasons:
- Free compilers are available that are compliant with standards from both Microsoft and others.
- VC6 was written before the C ++ language was standardized, and it does not meet the standards anywhere. Especially templates and the standard library live in their own world, without reference to how these functions actually work in ISO C ++. The language that it compiles is not C ++. This is a hybrid of the predefined standard C ++, Microsoft extensions, limitations and compiler errors. None of them are desirable.
- VC6 is known to generate incorrect code in some cases. It not only compiles a self-made, buggy and non-standard language, but also makes invalid optimizations that cause failures, or in some cases actually creates a poor assembly that simply cannot be completed.
It is broken, and it has always been broken. It was designed to compile a language that ceased to exist at about the same time as the compiler (when the language was standardized), and it could not even cope with this task, with countless errors, some of which were fixed in half a dozen update packages that were released. But not all of them, and not even all critical.
Of course, the disadvantage of this is that your application is most likely also broken. (not because you are bad programmers, but because it targets a broken compiler. It must be hacked to be accepted by VC6)
Porting this standardized compiler is likely to be a lot of work. Do not assume that you can just import old projects, click build and it will work.
So, if you are part of a large business that cannot just take a month to switch compilers, you may have to migrate it as a side project, while part of the team supports the VC6 version. Do not break VC6 until you port everything and it works.
jalf
source share