
On Sun, Nov 4, 2012 at 3:01 PM, Edward Diener <eldiener@tropicsoft.com>wrote:
I doubt if Microsoft considers full support for C++(11) to be also producing a compliant preprocessor. I am not defending them for that viewpoint but it does seem as if they view the preprocessor has a separate part of the C++ language which they do not have to implement according to the latest C/C++ standards.
I think the problem is that so few people care about a compliant preprocessor, and those who do care are often library developers who consistently bend over backwards with workarounds to support VC++ anyway. That coupled with the fact that fixing their preprocessor means potentially breaking people's code (even though it was noncompliant to begin with), means that it is an extremely low priority for them. IMO, they should just include something like Boost.Wave or Clang's preprocessor and have a compiler option to enable it (even if it defaults to not being enabled, falling back to their noncompliant preprocessor) and make sure that windows headers compile correctly with it on. I can't imagine that this would be too difficult for them to do, and at least then library developers have some way to support VC++ without tons of workarounds -- just tell users of the library to pass in the appropriate compiler option. -- -Matt Calabrese