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

HP aC++ Release Notes
New Features in Version A.03.65
Chapter 118
const C func2() { return C(); }
int main() {
const C b = func2();
In this case, the compiler eliminates the copy constructor call.
Improved Compile Time
With this release, there is a significant reduction in compile time for applications involving operator
overloading and function overloading.
Debugging of Inline Functions
HP aC++ Version A.03.65 now supports debugging of inline functions. This feature enables you to set
breakpoints and watch points, do 'step-in' and 'step-out', and display, view, or change the value of local
variables in inline functions using WDB. To enable this feature, use the +inline_debug option, which
will implicitly pass the -g option to the compiler.
Improved Template Usability
This version significantly improves the support for C++ template features with more conformance to the
ISO/IEC 14882 C++ Standard. Specifically, support for member templates, argument deduction, partial
specialization, and dependent name lookup have been improved.
Destruct Locals when pthread_exit is Called
When pthread_exit is called in multithreaded C++ applications, the exiting thread exits without calling
destructors for the active local objects. This behavior is not always desirable, certain applications might
require the destructors to be called for objects on the stack of exiting thread.
From this release, support is provided for calling destructors for active local objects when pthread_exit is
called on a thread. To enable this feature, you need to set the environment variable
aCC_PTHREAD_EXIT_CLEANUP=1|ON.
Consider the following example:
#include <pthread.h>
#include <stdio.h>
class A {
public :
A() { printf("A()\n"); }
~A() { printf("~A()\n"); }