C1XX -ZE

Syntax

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.

Behaviour

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.