HP aC++/HP ANSI C A.06.27 Release Notes

error #3031-D: an entity with internal linkage cannot be referenced
within an inline function with external linkage
Use of inline or restrict as variables/functions/types:
error #2040: expected an identifier
Full -AA default C++ compilation mode (Changed)
In this version of the HP aC++ compiler, the default C++ compilation mode has changed to full
-AA, which now additionally enables the option -Wc,-ansi_for_scope,on. This is being done
to reduce porting efforts by adhering to the C++ Standard.
To retain the previous behavior, use the -Wc,-ansi_for_scope,off command-line option.
Errors and warnings (with unintended runtime results) that can happen with
-Wc,-ansi_for_scope,on include:
Loop index is no longer in scope after the for loop body:
error #2020: identifier "i" is undefined
Reference to outer scope variable instead of loop index:
warning #2780-D: reference is to variable "i" (declared at line X)
[Under old for-init scoping rules it would have been
variable "i" (declared at line Y)]
With +wlint:
warning #3348-D: declaration hides variable "i" (declared at line X)
To catch issues resulting from this change in the C++ default, compile with the +We2780 option
to convert the warning 2780 to an error.
If you are already using the -Aa or -AA command-line option explicitly, then there would be no
change in behavior.
-Ax option enables support for several C++0x extensions (New)
The new -Ax option turns on support for several extensions introduced by the working paper for
the next C++ standard (called C++0x). The -Ax option is available only in C++ compilation mode
and is binary compatible with the -AA compilation mode.
The following C++0x features are enabled by the -Ax option, and in additional compiler modes
where indicated:
Scoped enumeration types
The compiler now supports scoped enumeration types (defined with the keyword sequence "enum
class") and explicit underlying integer types for enumeration types.
Example:
enum class Primary { red, green, blue };
enum class Danger { green, yellow, red };
// No conflict on "red".
enum Code: unsigned char { yes, no, maybe };
// sizeof(Code) == 1
Primary p = Primary::red;
// Enum-qualifier is required to access
// scoped enumerator constants.
Code c = Code::maybe;
// Enum qualifier is allowed (but not required)
// for ordinary enumeration types.
New features in version A.06.25 17