Geoff Chappell - Software Analyst
This option has no arguments. It is -ZE only.
This option is not recognised on the CL command line, but can be passed to C1XX through the CL /d1 option, giving ZE as its argument.
Under the -ZE option, the following identifiers, whose names all begin with one underscore, become keywords:
_alignof, _asm, _assume, _based, _builtin_alignof, _cdecl, _compileBreak, _declspec, _except, _export, _far, _far16, _fastcall, _feacpBreak, _finally, _forceinline, _fortran, _huge, _inline, _int16, _int32, _int64 (if /ZB ≥ 64), _int8, _leave, _multiple_inheritance, _near, _novtordisp, _pascal, _pragma, _ptr32, _ptr64, _serializable, _single_inheritance, _stdcall, _syscall, _thiscall (if -Binl), _transient, _try, _uuidof, _virtual_inheritance and _w64
Each tokenises indistinguishably from a corresponding keyword whose name differs only by having two leading underscores.
This behaviour is presumably intended for compatibility with earlier versions of the compiler. Note especially that not all keywords whose names begin with two underscores are supported with one leading underscore, the exceptions being the relatively new:
__abstract, __box, __delegate, __event, __gc, __hook, __identifier, __if_exists, __if_not_exists, __interface, __nogc, __pin, __property, __raise, __sealed, __super, __try_cast, __typeof, __unhook, __value and __wchar_t
and those that are disabled for reasons other than being obsolete:
__builtin_isfloat, __int128, __int64 (if /ZB < 64), __nodefault, __nontemporal, __nounwind, __probability, __restrict, __resume, __sysapi, __thiscall (if not -Binl) and __unaligned
The behaviour of -ZE is also arranged by the /Ze option, but as one of many. With -ZE it is the sole action.