
On Thu, May 7, 2015 at 5:40 PM, Niall Douglas
I'd have thought replacing the preprocessor probably just about the easiest compiler mod possible. We can even do it ourselves by getting winclang to feed preprocessed output to MSVC for us!
That's why I said "for other reasons." It'd be simple to just swap out the preprocessor with a compliant one, but that breaks tons of code including code in windows headers. Even the clang-cl effort tries to mimic funky MSVC preprocessor behavior such that it is feasible to use in a windows system. I'm pretty sure that in the past Microsoft has explicitly stated that they have absolutely no plans of ever fixing their preprocessor, but I remain hopeful that it will be fixed eventually.Unfortunately it tends to only be people like boost developers who really care, and Boost.Preprocessor bends over backwards to support MSVC anyway, so there's not enough incentive for Microsoft to do anything.
Two phase lookup, on the other hand, is likely to be one of the very hardest to support for a compiler like MSVC. I can see Concepts in MSVC before two phase lookup.
Oh yeah, definitely. If you're talking concepts-lite kind of concepts, that's not much more complicated than C++11 SFINAE. I wouldn't be surprised if that's one reason they actually are tackling SFINAE now. -- -Matt Calabrese