United States    
COMPAQ STORE | PRODUCTS |
SERVICES | SUPPORT | CONTACT US | SEARCH
C++
Compaq C++ Version 6.2-040

Compaq C++ Version 6.2-040

Release Notes for Compaq Tru64 UNIX


March 3, 2000

This document contains information about new and changed features in this version of Compaq C++ for Tru64 UNIX.

Compaq Computer Corporation
Houston, Texas


© 2000 Compaq Computer Corporation.

Compaq, the Compaq logo, Alpha, DEC, DECthreads, DECwindows, Ladebug, and Tru64 UNIX are Registered in the U.S. Patent and Trademark Office. All other product names mentioned herein may be trademarks or registered trademarks of their respective companies.

PostScript is a trademark of Adobe Systems Incorporated.

UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd.

Portions of the ANSI C++ Standard Library have been implemented using source licensed from and copyrighted by Rogue Wave Software, Inc. All rights reserved.

The software and information pertaining to such portions of the C++ Standard Library are proprietary to, and comprise valuable trade secrets of, Rogue Wave Software, Inc., which intends to preserve as trade secrets such software and information.

This software and information are furnished pursuant to a written license agreement and may be used, copied, transmitted, and stored only in accordance with the terms of such license and with the inclusion of the above copyright notice. This software and information or any other copies thereof may not be provided or otherwise made available to any other person.

Contents

1 Introduction

This document contains the release notes for Compaq C++ Version 6.2-040 for Compaq Tru64 UNIX.

This kit installs two compilers:

This kit installs Ladebug 4.0-48 as a separate subset.

HTML files are provided for the release notes and some of the product manuals for use with a web browser. You can install these files by selecting the subset Compaq C++ HTML documentation .

To view this documentation, point your browser to file:/usr/share/doclib/cplusplus/index.htm.

2 Important Compatibility Information

Compaq strives to maintain a high degree of compatibility between successive versions of the compiler and its run-time environment. Because, however, each new version includes enhancements and changes, you should be aware of the following whenever you upgrade:

The next sections discuss these differences.

2.1 Run-Time Library Differences

Applications must use a version of the C++ Run-Time library ( libcxx ) that provides all the functions they require. If an application is linked shared, and the correct library version is not installed, "undefined symbol" error messages appear at run time. Changes in the Run-Time Library occurred in Versions 6.0 and 6.2.

For information about redistributing the C++ Run-Time Library, see Deploying Your Application in Using Compaq C++ for Tru64 UNIX.

2.2 Compiler Differences

Starting with Version 6.0, the Compaq C++ compiler differs significantly from previous versions. There are several major differences that you should be aware of before using a Version 6.n compiler for the first time. These differences are summarized here. For more detailed information, see Porting to Compaq C++ in Using Compaq C++ for Tru64 UNIX.

2.3 Differences between Compaq C++ and the C++ International Standard

The following items, specified in the C++ International Standard, are not supported in Version 6.2-040 but will be supported in a future version:

3 Release Notes for the C++ Compiler

The following sections describe enhancements, changes, problems corrected, and restrictions for the C++ compiler. Restrictions for Version 6.2-040 are the same as for Version 6.2-037.

3.1 Enhancements, Changes, and Problems Corrected in Version 6.2-040

Enhancements, changes, and problems corrected are as follows:

3.2 Enhancements, Changes, and Problems Corrected in Version 6.2-037

Enhancements, changes, and problems corrected are as follows: <LE>When generating EV6 code, the peephole optimizer could display an assertion failure complaining that an operand is not fixed or not float. This has been corrected. [6787] <LE>When generating EV6 code, the compiler produced a code pattern (specific to conversion between integer and floating types) that could produce incorrect results. This release corrects the problem. [6816] <LE>If the exception handling mechanism calls the two-parameter delete operator to clean up an allocated object that had an exception in the constructor, the mechanism now passes the correct size to the second (size) parameter. [6823] <LE>When compiling with -std arm , C++ treated the types const char , *& , and char *& as equivalent. Effects-compatible types did not recognize this behavior. A new ARM-compatible flag for types_are_compatible with effects_compatible_types is now set when in ARM mode. The new flag specifies that all type qualifiers are ignored when comparing the type compatiblity of two pointer or reference types. [6949]

The ARM mode of the compiler allows a const char * reference to reference a char * object, as show in the following example:


static char * f() { 
    char *value = 0; 
    const char * & d1 = value;  // d1 can reference value 
    d1 = "abc";                 // changes value 
    return value;               // should return "abc", not 0 
} 

In standard mode, however, this behavior is not allowed, and the compiler did not recognize that assignments to the reference change the value of the object referenced. In the example, because the compiler did not recognize that assignments to d1 would change value, it assumed that the assignment to d1 did not occur and that the correct return value fo the function f() was 0.

This version of the compiler fixes the problem. <LE>A change in the debugging symbol table produced by the C++ compiler causes all namespace members to be generated in the local symbol table of the file descriptor associated with the namespace, within the scope of the namespace. This change make it easier to debug namespaces. [LDB1569]

3.3 Enhancements and Changes in Version 6.2

Version 6.2 includes the following enhancements and changes:

3.4 Problems Corrected in Version 6.2

This section summarizes compiler changes and the most important problems corrected in Version 6.2.

3.5 Restrictions in Version 6.2

This release is not totally compatible with previous versions; source changes might be required. The following general restrictions apply for the current release:

3.6 Problems Corrected in Version 6.1-029

This section summarizes compiler changes, enhancements, and the most important problems corrected in Version 6.1-029.

3.7 Problems Corrected in Version 6.1

This section summarizes compiler changes, enhancements, and the most important problems corrected in Version 6.1.

3.8 Enhancements and Changes in Version 6.0

This section briefly summarizes changes and enhancements made in Version 6.0. For information about compatibility issues that you might encounter using Version 6.2 if you have used Version 5.n in the past, refer to Porting to Compaq C++ in Using Compaq C++ for Tru64 UNIX.

4 Release Notes for the C++ Standard Library

The following sections describe enhancements, changes, problems corrected, and restrictions for the C++ Standard Library. For information about the Compaq C++ Class Library, see Appendix A in Using Compaq C++ for Tru64 UNIX.

The current version of Compaq C++ implements the new Standard Library string class, known as the String Library. Do not confuse this class with the String Package, which is part of the DEC C++ Class Library implemented in earlier versions of Compaq C++.

Portions of the ANSI C++ Standard Library have been implemented in Compaq C++ using source licensed from and copyrighted by Rogue Wave Software, Inc. Information pertaining to the C++ Standard Library has been edited and incorporated into Compaq C++ documentation with permission of Rogue Wave Software, Inc. All rights reserved.

Portions copyright 1994-1999 Rogue Wave Software, Inc.

4.1 Enhancements, Changes, and Problems Corrected in Version 6.2-037

Enhancements, changes, and problems corrected are as follows:

4.2 Enhancements and Changes in Version 6.2

The following enhancements and changes are included in Version 6.2:

4.3 Problems Corrected in Version 6.2

The following problems are corrected in Version 6.2:

4.4 Restrictions in Version 6.2

This section describes problems you might encounter when using the current release of the C++ Standard Library with the Compaq C++ compiler. Where appropriate, workarounds are suggested.

4.5 Enhancements and Changes in Version 6.1-029

The following enhancement is included in Version 6.1-029:

4.6 Problems Corrected in Version 6.1-029

The following problems are corrected in Version 6.1-029:

4.7 Enhancements and Changes in Version 6.1

The C++ Standard Library provided with this release defines a complete specification (with some differences) of the C++ International Standard. The library includes the ANSI locale and iostream libraries. Reference pages describing the Standard Library are provided; you can type man cxxlibstd_intro to access them.

Tutorial programs illustrating functionality found in the Standard Library, including the locale , iostream , and STL classes shipped with this release are available in:


     /usr/examples/cxx/*.cxx 

You can compile and run these programs and use them as models for your own coding. The expected output for each program can be found in:


     /usr/examples/cxx/*.res 

Version 6.1 introduces the following major enhancements and changes. For detailed information, on the Compaq C++ Standard Library, refer to Using Compaq C++ for Tru64 UNIX.

Additional changes include the following:

4.8 Problems Corrected in Version 6.1

This section describes library problems corrected in Version 6.1.

5 About This Product

Compaq Computer Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.

Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Compaq or an authorized sublicensor.

© 1999 Digital Equipment Corporation.

Contents
  

1.800.AT.COMPAQ

privacy and legal statement