HP aC++/HP ANSI C A.06.27 Release Notes
◦ In C++0x mode, auto is always a type specifier, not a storage-class specifier
◦ Lambdas
• C99 features added to C++0x (New)
Mixed string literal concatenations◦
◦ Rule changes related to determining the type of large literal constants
◦ Variadic macros
◦ _Pragma operator
• extern template
• Decimal Floating Point supported in C++ mode (New)
• #pragma STDC FLOAT_CONST_DECIMAL64 (New)
• #pragma omp task (New)
• #pragma omp taskwait (New)
• Performance enhancements for +O1 (Changed)
• Non-template static data members initialized outside the class no longer treated as constants
in strict mode (Changed)
• Enhancements to allow code to run well on current platforms and future multi-core processors
(New)
• New diagnostic messages (New)
• Improved diagnostic messages (Changed)
• Enhanced +wendian warnings (New/Changed)
• New run-time abort messages (New)
C99 default C compilation mode (Changed)
In this version of the HP C/aC++ compiler, the default C compilation mode has changed from C89
to C99. So by default C99 features are enabled, and the following commands are now equivalent:
cc
cc -Ae
cc -AC99
aCC -Ae
aCC -AC99
To retain the previous behavior, use the -AC89 command-line option.
Errors that can happen with C89 conforming code when using the -AC99 command-line option
include:
• enum out of range:
error #2066: enumeration value is out of "int" range
error #4041: enumeration value is out of "char" range
• Restriction on constant expressions:
error #2057: this operator is not allowed in a constant expression
error #2028: expression must have a constant value
(Instead of warning #4045-D: non-constant initialization performed at runtime.)
• Non-static inline can't reference static:
16 Product changes in earlier versions