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

HP aC++ Release Notes
New Features in Version A.03.65
Chapter 1 17
New Features in Version A.03.65
HP aC++ version A.03.65 supports the following new features:
+Onolibcalls=func1[,func2,...] Option
Improved NRV Optimization
Improved Compile Time
Debugging of Inline Functions
Improved Template Usability
Destruct Locals when pthread_exit is Called
Accessing Members of Enclosing Class from a Nested Class
Performance Improvement of Strings With -mt
+Onolibcalls=func1[,func2,...] Option
Now, a list of function names can be specified as arguments to the +Onolibcalls option. The function
names can be given after a '=' following the +Onolibcalls option.
If multiple function names have to be specified, they must be separated by commas as shown. There cannot
be any intervening spaces or blanks. Multiple functions can also be specified with multiple +Onolibcalls
options.
The functions specified are expected to be part of the millicode routines' library.
This new syntax of the +Onolibcalls option allows users to selectively disable the inlining of only the
specified library routines. Previously, it was possible only to either inline all the library routines (using
+Olibcalls) or to disable all of them (using +Onolibcalls).
Improved NRV Optimization
From this release, the compiler does further optimizations with NRV (Named Return Value optimization) to
eliminate unnecessary calls with const initializations. For example:
#include <stdio.h>
struct C {
C() {}
C(C const &) { printf(“Copy Constructorn”); }
};