Predefined Macros
The front end defines a number of preprocessing macros. Many of
them are only defined under certain circumstances. This section
describes the macros that are provided and the circumstances under
which they are defined.
- __STDC__ Defined in ANSI C mode and in C++ mode. In C++
mode the value may be redefined. Not defined in Microsoft compatibility
mode.
- __cplusplus Defined in C++ mode.
- c_plusplus Defined in default C++ mode, but not in strict
mode.
- __STDC_VERSION__ Defined in ANSI C mode with
the value 199409L. The name of this macro, and its value,
are specified in Normative Addendum 1 of the ISO C Standard.
- __SIGNED_CHARS__
Defined when plain char is signed. This is used
in the <limits.h> header file to get the proper
definitions of CHAR_MAX and CHAR_MIN.
- _WCHAR_T
Defined in C++ mode when wchar_t is a keyword. The
name of this predefined macro is specified by a configuration
flag. _WCHAR_T is the default.
- _BOOL Defined
in C++ mode when bool is a keyword. The name of this
predefined macro is specified by a configuration flag. _BOOL
is the default.
- __ARRAY_OPERATORS Defined in C++ mode
when array new and delete are enabled. The name of this predefined
macro is specified by a configuration flag. __ARRAY_OPERATORS
is the default.
- __EDG_RUNTIME_USES_NAMESPACES
When
the runtime uses namespaces, this macro name is also defined by
default (by default, the runtime does use namespaces -- both this
default and the macro name default can be changed under a custom
porting arrangement).
- __EDG_IMPLICIT_USING_STD
By
default (this can be changed under a custom porting arrangement),
the runtime does use namespaces however by default (this too can
be changed under a custom porting arrangement, or by using the
--using_std command line option) it does not emit an
implicit using directive on the std namespace (that is,
by default it does not effectively emit a using namespace
std;) When it does, this macro name (which can be changed
under a custom porting arrangement) is emitted.
- __EDG__
Always defined.
- __COMO__ Always defined.
- __EDG_VERSION_
Defined to an integral value that represents the version
number of the front end. For example. version 2.30 is represented
as 230.
- __COMO_VERSION__ Defined to an integral value
that represents the version number.
Comeau Computing
91-34 120th Street
Richmond Hill, NY 11418-3214
Back to documentation Table of Contents
http://www.comeaucomputing.com
support@comeaucomputing.com
/* the end */