HPlogo HP C++ Version A.12.14 Release Notes: For HP-UX 11.x Systems > Chapter 1 New and Changed Features

Overview of This Release of HP C++

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

New and changed features in this HP C++ release include compiler enhancements and problem fixes, and revised online help documentation.

New and Changed Features

The new and changed features for A.12.14 are listed below. These items are documented in the HP C++ Online Programmer's Guide (see Chapter 3 for access instructions.)

  • Programs that use floating point arithmetic need to trigger Floating Point exceptions before entering a library routine. See “Trigger Floating Point exceptions before using library routines”.

  • The -ptb option is no longer necessary to build shared libraries that depend on other shared libraries that contain templates. The compiler default behavior makes this option unnecessary, but it is retained for backward compatibility.

  • HP C++ does not support huge data, which are objects larger than 2^29 bytes. To take advantage of objects requiring huge data, use the HP aC++ compiler.

  • HP C++ does not support PA-RISC 64-bit mode. To take advantage of 64-bit mode features, use the HP aC++ compiler.

  • HP C++ (cfront) no longer includes libcodelibs.a. HP C++, however, includes the source for the HP Codelibs Library. You must build the library if you want to use it. The instructions for building the library are in /usr/contrib/codelibs/README.

  • Changes to the following in HP-UX may cause incompatibilities with programs created with previous versions of HP C++:

    • The underlying type corresponding to the typedef size_t changes from unsigned int to unsigned long. Similarly, ptrdiff_t changes from int to long.

      These changes cause compatibility problems when size_t is used in a non-extern C interface because the mangled signature is different.

      Because of these changes, if any object files are recompiled or linked, then you must recompile all C++ files. This means that third-party libraries in archive form may also need to be recompiled or updated.

    • In HP-UX, time_t changes to type long. This change may cause source files that compile without error using HP C++ for HP-UX 10.10 or 10.20 to not compile with the 11.0 release. The example below shows one example of what may occur.

      1: #include <time.h>
      2: time_t ff (time_t t) { return t; }
      3: time_t ff (long t) { return t; }
      4: int main () { long tt = ff (1L); return 0; }

      In the example, ff is overloaded to take either a time_t or a long parameter. On a 10.10 or 10.20 system, where time_t is an int, the code compiles. On an 11.0 system, however, where time_t is a long, the code fails to compile:

      CC: "tm.c", line 4: error: two definitions of ff() (1034)

© 1999 Hewlett-Packard Development Company, L.P.