Many words were said already about dropping the support for old
compilers. I agree with all of them and want to put one more argument
on top of it from myself.
There are a lot of innovations happen in compilers and tooling. Big
companies put thousands of man-hours to improve compiler toolchains and
standard libraries (LLVM and libc++ are the headliners here -
everything goes there first).
It's silly not to use all of those, it makes finding bugs easier by
orders of magnitude (modern C++ makes you write code with less bugs
too, but that has been said already).
For example, AddressSanitizer will show you out of bounds access right
where it happened, with stack trace and memory contents.
But there is one thing here, it doesn't work without the standard
library support. Of course, we can write that into our own lib
(stlport?), reinventing the wheel. But isn't it better to spend time on
something ReactOS-related, where there is no open source code available
at all? (note: I'm asking about who is going to do that)
And if we choose to incorporate libc++ into our project, which supports
all of that tooling out of the box for Windows, we have another problem
- it can't be compiled with ancient compilers.
So basically, the choice is simple - either we support building ReactOS
with old compilers (this is not only about MSVC2010, but for everything
which doesn't support modern-enough C++), or we benefit from modern
tech for dynamic and static code analysis. I prefer the latter.
Regards,
Victor