The _WCHAR_T_DEFINED Macro

Syntax

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.

Expansion

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).