For whatever reason (probably because MSVC does not define those yet), the char(16|32)_t keywords are not defined in MicrosoftMode. So you have to compile with -fno-ms-compatibility for now.
That is not good since Boost header files expect clang to support char16_t. I can test with -fno-ms-compatibility but does not that defeat clang working Under Windows when Windows SDK header files are involved ?
Most of the things changed in MicrosoftMode seem to affect C++ and aren't that relevant for SDK headers since those are C/COM.
And indeed, I've been using Clang for diagnostics just fine on a COM project. And it seems as if there's no pressing need to have that pesky -fdelayed-template-parsing mode enabled, too. I've found only one issue which can be worked around by forward declaring IUnknown.
That is not good since Boost header files expect clang to support
char16_t. I can test with -fno-ms-compatibility but does not that defeat
clang working Under Windows when Windows SDK header files are involved ?
Most of the things changed in MicrosoftMode seem to affect C++ and aren't
that relevant for SDK headers since those are C/COM.
It will affect ATL/WTL a *lot*, but we can't quite parse those yet anyway.