HP aC++ Release Notes Version A.03.95 (5900-1789; September 2011)

HP aC++ Release Notes
New Features in Version A.03.25
Chapter 1 61
Warning 829: Implicit conversion of string literal to ‘char*’ is deprecated.
These could be suppressed by a cast or const_cast like the above, then no further messages will occur.
Or they could be suppressed by using +W829. A compile-time error is generated unless a cast is done, in
which case there is no message, and a SIGBUS signal 10 could be generated at runtime.
Note that if you used a cast at compile-time to suppress the error/warning you will have no idea where to
change the code to fix the runtime abort. If you want to find the source of your problem, look for
const_cast or warning 829, or any indication that you put the cast in the source.
When using the debugger, you can print out what you’re trying to modify and search for the string to find the
source of the problem.
In A.03.15, A.01.23 and prior compiler versions, only floating-point constant values were placed in
read-only memory. Other constants and literals were placed in read-write memory.
HP aC++ continues to more strictly conform to the C++ Standard, enabling porting to additional platforms.
Due to closer conformance with the standard, you may see more compile time warnings and errors.
Function Try Blocks as Defined in the C++ Standard
HP aC++ now provides function try blocks, as defined in the C++ Standard. Function try blocks are
sometimes necessary with class constructor destruction. A function try block is the only means of ensuring
that all exceptions thrown during the construction of an object are caught within the constructor.
#assert and #unassert Preprocessor Directives
#assert and #unassert preprocessor directives allow you to set a predicate name or predicate name and
token to be tested with a #if directive. The -ext option must also be specified at compile and link time.
enum x { x1, }; Trailing Comma now Generates Warning 921
Most frequently reported migration issue: enum x { x1, };
The trailing comma is an error, and aC++ now generates Warning 921.
+m[d] and +M[d] Options Have Changed Behavior
Behavior of the +m[d] and +M[d] options has changed. When used with the -E option, only dependency
file information is generated, and there is no preprocessing output.
Behavior when combining the +m[d] or +M[d] option with the -P option is unchanged. Both dependency
information and preprocessing output are generated.