Geoff Chappell - Software Analyst
This macro is not built in unless compiling with the /Zc:wchar_t option active and the /Yu option inactive. When it is built in, the macro is _WCHAR_T_DEFINED only, with no argument list.
When the _WCHAR_T_DEFINED macro is built in, expansion is ill-defined. The relevant code in C1XX omits to make a case for it in a switch statement whose default is assumed unreachable. Expanding this macro induces C1XX to try executing at address zero. Thus, compiling even a simple fragment such as
#if _WCHAR_T_DEFINED #endif
or
int x = _WCHAR_T_DEFINED;
with /Zc:wchar_t produces an internal compiler error (C1001).