HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)

3. Compile and fix syntax errors.
Note that cfront-generated object code and libraries are not compatible with
those produced by aCC.
If your program uses operator new, allow for memory allocation exceptions
that may occur. Modify your cfront code to handle memory allocation failures
to avoid a program abort.
4. Make library changes. Begin migration to the Standard C++ Library and Tools.h++
Library.
5. Make template changes.
If a program or library uses templates, consider source code changes that may
be required to direct template instantiation.
Use the +inst_directed option with the initial compilation to defer
consideration of compile-time errors due to template instantiation.
Writing Code for both Compilers
Use the __cplusplus macro (defined by the draft standard) to write code that can be
compiled by both HP C++ and HP aC++.
Example:
#if __cplusplus >= 199707L
// HP aC++ code
#else
// HP C++ code
#endif // __cplusplus >= 199707L
Explicit Loading and Unloading of Shared Libraries
HP aC++ uses system calls rather than C++ function calls to explicitly load and unload
shared libraries. When migrating to HP aC++, make the following source code changes:
Change cxxshl_load() to shl_load().
Change cxxshl_unload() to shl_unload().
Change #include <cxxdl.h> to #include <dl.h>.
Memory Allocation
See “Memory Allocation Failure and operator new” (page 253) for more information.
248 Migrating from HP C++ (cfront) to HP aC++