(Builder: Project > Language Options for Selected Files... > C++ tab)
The following are descriptions of the drop-down list boxes in the C++ tab.
Enables ANSI C++ mode. Warning messages are issued when non-ANSI C++ features are used. Features that conflict with ANSI C or C++ are disabled. Equivalent to the --std command line option.
Accepts the C++ language as defined by The Annotated C++ Reference Manual (ARM), by Ellis and Stroustrup. This version of C++ includes templates, exception handling, which must be explicitly requested, and the anachronism of the book's Chapter 18. This is essentially the same language as the language reference manual for cfront 3.0, with the addition of exception handling. This is the default C++ version.
Enables the extended embedded C++ dialect. Equivalent to the --ee command line option
Enables the Embedded C++ dialect, with templates, STL, namespaces, and mutable, new-style casts. Equivalent to the --e command line option.
Enables compatibility with cfront version 3.0. This causes language constructs to be accepted which are not necessarily part of the C++ language definition, but which are accepted by the AT&T C++ Language System (cfront) release 3.0. This mode also enables acceptance of anachronisms.
Enables compatibility with cfront version 2.1. This causes language constructs to be accepted which are not necessarily part of the C++ language definition, but which are accepted by the AT&T C++ Language System (cfront) release 2.1. This mode also enables acceptance of anachronisms.
Selects whether function inlining should be done.
Enables maximum inlining of function calls.
Disables maximum inlining of function calls when debugging information is requested.
Enables minimal inlining of function calls.
Disables inlining of function calls when debugging information is also requested.
Disables inlining of function calls.
Controls the allocation of virtual tables.
Uses the standard heuristic to define a virtual function table for a class. The virtual function table for a class is defined in a compilation if that compilation contains a definition of the first non-inline pure virtual function for the class. For classes that contain no such function, the default behavior defines the virtual function table as a local static entity.
Forces definition of virtual functions tables in cases where the heuristic used by the front end, to decide on the definition of virtual tables, provides no guidance.
Suppresses definition of virtual function tables in cases where the heuristic used by the front end, to decide on the definition of virtual function tables, provides no guidance. For details on this heuristic, see Standard Tables above. The option suppresses definition of the local static virtual function tables.
Selects the algorithm to allocate storage for enumeration types.
Always allocates a full integer for an enumeration type. This is the default.
Allocates enumerations to the smallest possible integral type.
Selects the default alignment for packing classes and structs. This option is rarely used, and should match the alignment setting in the Project > Options for Selected Files... dialog box, Advanced tab.
The following items describe check box items in the Language Options dialog box, C++ tab:
Enables support for the C++ exception handling feature. Code size and speed may be impacted even when exception handling is not directly used.
Disables support for the C++ namespaces feature.
Enables implicit use of the standard namespace when standard header files are included.
Disables support for runtime type information (RTTI) features "dynamic_cast" and "typeid."
Disables recognition of the "bool" keyword. Equivalent to omitting the --bool command line option.
Disables support for the "explicit" specifier on constructor declarations. It is equivalent to the --no_explicit build-time option.
Does not recognize wchar_t as a keyword. Use this option if your source contains a typedef that declares wchar_t.
Disables support for the array new and delete feature.
Enables recognition of the "restrict" keyword.
Disable support for 'inline' functions with external linkage in C++. Functions which are declared only 'inline' will be external or static depending on the flag specified. Equivalent to the --no_extern_inline command line option.
Disable an extension to permit implicit type conversion in C++ between a pointer to an `extern "C"' function and a pointer to an `extern "C++"' function. Equivalent to the --no_implicit_extern_c_type_conversion command line option.
Function types are considered distinct if their only difference is that one has `extern "C"' routine linkage and the other has `extern "C++"' routine linkage. Equivalent to the --c_and_cpp_functions_are_distinct command line option.
Allow operator functions to overload built-in operations on enum-typed operands.
When resolving an overloaded function, tie-breakers (`const' and `volatile' qualifiers) are ignored during the initial comparison. They are considered only if the two functions are otherwise equally good on all arguments. Equivalent to the --late_tiebreaker command line option.
Force all uninitialized scalar global variables to be explicitly initialized to zero. Equivalent to the --force_zero_initialization command line option.
Do not generate an automatic call to _main from main. _main performs constructor initialization
Enable processing for multibyte character sequences in comments, string literals, and character constants. Equivalent to --multibyte_chars.
Enables recognition of a set of Microsoft extensions. The Green Hills C++ User's Guide discusses this in further detail.
Enables support of anachronisms.
The old (Cfront-compatible) scoping rules means the declaration of a variable in the initialization part of a for statement is in the scope to which the for statement itself belongs. The new (standard conforming) rules, in effect, wrap the entire for statement in its own implicitly generated scope.
Does not demangle names that appear in linker messages. These are typically symbol names which are either undefined or multiply defined.
Leaves a C version of the C++ code. The translated C file is filename.ic.
If producing a preprocessor output file (see File Options dialog box, Actions tab) passes comment lines through from the C++ source to the preprocessor output file.
Ignores an #include directive if attempting to include a file already included. The file must appear with exactly the same name in both #include directives to ignore the second #include directive.
If a filename appears in more than one #include directive during a single compilation, it skips all of the directives except the first one. Equivalent to the -includeonce C preprocessor option.
The "char" type is treated as "signed char."
Bit fields within a struct or class are treated as signed entities by default.
Bit fields of type "enum" within a struct or class are treated as signed entities by default.
Creates temporary variables whose lifetime ends at the earliest end of scope, end of switch clause, or next label. This is the behavior of cfront. Long lifetime temporaries are implied by the cfront compatibility modes. The alternative is for temporary variable lifetimes to end at the end of the full expression for which they are created. This is the behavior of standard C++.
Enables recognition of alternative tokens. These are tokens that make it possible to write C++ without the use of the {, }, [, ], #, &, |, ^ and ~ characters. The alternative tokens include the operator keywords, such as and and bitand, and digraphs.