| United States-English |
|
|
|
![]() |
HP aC++ Version A.03.13 Release Notes: HP Series 9000 > Chapter 3 Related Documentation Other Documentation |
|
Refer to the HP aC++ Online Programmer's Guide Information Map for documentation listings, URL's, and course information related to the C++ language. Also, see below. The following documentation is available for use with HP aC++. To order printed versions of Hewlett-Packard documents, refer to manuals(5).
The HP aC++ World Wide Web Homepage provides the latest information regarding:
Access the Homepage at the following URL:
Maintaining binary compatibility is a key release requirement for new versions of HP aC++. The compiler has maintained the same object model and calling convention and remains compatible with the HP-UX runtime in the code that it generates as well as its intrinsic runtime library (libCsup) across the various releases of HP aC++ and its run-time patch stream. For the Standard Template Library (libstd) and a generic component/tool library (librwtool), HP aC++ (as well as some other C++ compilers) relies on Rogue Wave's Standard Library and Tools.h++ libraries. From the initial release of HP aC++ through the patch release of version A.01.06, Rogue Wave's Standard Library version 1.2 and Tools.h++ version 7.0.3 compatible libraries were bundled with the compiler. At the release of HP aC++ A.01.07, the runtime libraries were updated to Rogue Wave's Standard Library version 1.2.1 and Tools.h++ version 7.0.6. These new libraries introduced additional data members in some base classes resulting in incompatibility with the previous versions. For more details, refer to the HP aC++ World Wide Web Homepage at the following URL and choose Compatibility between Releases:
Programmers who use floating-point arithmetic are reminded to insure that floating-point exceptions are raised before entering a library routine. For example a floating-point divide should be followed by a floating-point store. If you fail to do so, code within the library may raise the floating-point exception, interrupting the library code rather than the user code. This reminder is included since the unwind component of libcl.a and libcl.sl uses floating-point operations in more places than earlier versions of the library. HP aC++ uses unwind functionality to support throw/catch exception handling. Programs which don't raised floating-point exceptions before entering unwind library routines may have the exception raised from within the unwind routine. The size of a class containing any virtual function varies when compiled in 32-bit mode versus 64-bit mode. The difference in size is caused by the virtual table pointer (a pointer to an internal compiler table) in the class object. The pointer is created for any class containing one or more virtual functions. When compiling the following example in 32-bit mode, the output is 8. In 64-bit mode, the output is 16.
The following applies when you use an aCC command-line option that invokes the assigner. The content of a given .o file can potentially change when it is used in a closure (with the +inst_close option) or link operation. The change may occur in either of the following cases:
The above syntax disables (default) or enables the named return value (NRV) optimization. For this optimization to work correctly in conjunction with exception handling, the application must be linked to an aC++ run-time support library that comes with HP aC++ A.01.04 or a subsequent version. Linking with a prior library may cause spurious failures. If the shared version of this library is selected (default), the platform on which the application is run must also have that release of the HP aC++ run-time support library (libCsup.sl). The NRV optimization eliminates a copy-constructor call by allocating a local object of a function directly in the caller's context if that object is always returned by the function. For example:
This optimization will not be performed if the copy-constructor was not declared by the programmer. Note that although this optimization is allowed by the ISO/ANSI C++ working paper, it may have noticeable side-effects.
Beginning with the HP-UX 10.20 release, the linker generates compatibility warnings. These warnings include HP 9000 architecture issues, as well as linker features that may change over time. Compatibility warnings can be turned off with the +v[no]compatwarnings linker option. Also, detailed warnings can be turned on with the +vallcompatwarnings linker option. Link time compatibility warnings include the following:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||