DIGITAL logo   C++ Graphic
    Updated: 21 April 1999
  Compaq C++

Compaq C++
Using Compaq C++ for OpenVMS Alpha


Previous Contents Index

Chapter 3
3 C++ Language Environment
     3.1     Using Existing C Header Files
         3.1.1         Providing C and C++ Linkage
         3.1.2         Resolving C++ Keyword Conflicts
         3.1.3         Handling Scoping Issues
         3.1.4         Support for <stdarg.h> and <varargs.h> Header Files
     3.2     Using Compaq C++ with Other Languages
     3.3     Linkage to Non-C++ Code and Data
     3.4     How to Organize Your C++ Code
         3.4.1         Code That Does Not Use Templates
         3.4.2         Code That Uses Templates
         3.4.3         Summary
         3.4.4         Creating Libraries
     3.5     Sample Code for Creating OpenVMS Shareable Images
     3.6     Hints for Designing Upwardly Compatible C++ Classes
         3.6.1         Source Compatibility
         3.6.2         Link Compatibility
         3.6.3         Run Compatibility
         3.6.4         Additional Reading
Chapter 4
4 Porting to Compaq C++
     4.1     Compatibility with Other C++ Compilers
     4.2     Compatibility With Previous Versions
         4.2.1         Language Differences
         4.2.2         Implementation Differences
         4.2.3         Library Differences
     4.3     Using Classes
         4.3.1         Friend Declarations
         4.3.2         Member Access
         4.3.3         Base Class Initializers
     4.4     Undefined Global Symbols for Static Data Members
     4.5     Functions and Function Declaration Considerations
     4.6     Using Pointers
         4.6.1         Pointer Conversions
         4.6.2         Bound Pointers
         4.6.3         Constants in Function Returns
         4.6.4         Pointers to Constants
     4.7     Using typedefs
     4.8     Initializing References
     4.9     Using the switch and goto Statements
     4.10     Using Volatile Objects
     4.11     Preprocessing
     4.12     Managing Memory
     4.13     Size-of-Array Argument to delete Operator
     4.14     Flushing the Output Buffer
     4.15     Access Violations
     4.16     Source File Extensions
     4.17     Incrementing Enumerations
     4.18     Guidelines for Writing Clean 64-Bit Code
Chapter 5
5 Using Templates
     5.1     Overview
     5.2     Automatic Template Instantiation
         5.2.1         Specifying Alternate Repositories
         5.2.2         Reducing Compilation Time with the /template_define=timestamp Option
         5.2.3         Implicit Inclusion
         5.2.4         Compiling Programs with Automatic Instantiation
         5.2.5         Linking Programs with Automatic Instantiation
     5.3     Manual Template Instantiation
         5.3.1         Instantiation Directives
             5.3.1.1             #pragma define_template
             5.3.1.2             #pragma instantiate and #pragma do_not_instantiate
         5.3.2         Using Command Qualifiers for Manual Instantiation
     5.4     Advanced Program Development and Templates
         5.4.1         Dependency Management
         5.4.2         Mixing Automatic and Manual Instantiation
         5.4.3         Creating Libraries
         5.4.4         Creating a Common Instantiation Library
         5.4.5         Multiple Repositories
     5.5     Command-Line Qualifiers for Template Instantiation
     5.6     Compatibility with Earlier Versions of the Compiler
         5.6.1         Linking with Version 5.n Instantiations
         5.6.2         Linking Version 5.n Applications Against Version 6.n Repositories
Chapter 6
6 Handling C++ Exceptions
     6.1     Compiling with Exceptions
     6.2     Linking with Exceptions
     6.3     The /exceptions Qualifier
     6.4     The terminate() and unexpected() Functions
     6.5     C++ Exceptions and Other OpenVMS Conditions
     6.6     C++ Exceptions and Signals
     6.7     C++ Exceptions with setjmp and longjmp
     6.8     C++ Exceptions, lib$establish and vaxc$establish
     6.9     Performance Considerations
     6.10     C++ Exceptions and Threads
     6.11     Debugging with C++ Exceptions
Chapter 7
7 The C++ Standard Library
     7.1     Important Compatibility Information
         7.1.1         /[no]using_std Compiler Compatibility Switch
         7.1.2         Pre-ANSI/ANSI IOStream Compatibility
         7.1.3         Support for pre-ANSI and ANSI operator new()
         7.1.4         Overriding operator new()
         7.1.5         Support for Global array new and delete Operators
     7.2     How to Build Programs Using the C++ Standard Library
     7.3     Optional Switch to Control Buffering
     7.4     Enhanced Compile-time Performance of ANSI IOStreams
     7.5     Upgrading from the Class Library to the Standard Library Provided with Version 6.n
         7.5.1         Upgrading from the Class Library Vector to the Standard Library Vector
         7.5.2         Upgrading from the Class Library Stack to the Standard Library Stack
         7.5.3         Upgrading from the Class Library String Package Code
         7.5.4         Upgrading from the Class Library Complex to the ANSI Complex Class
         7.5.5         Upgrading from the Pre-ANSI IOStreams Library to the Compaq C++ Standard Library
         7.5.6         Upgrading Pre-ANSI bit_vector to ANSI vector<bool>
         7.5.7         Class Library Restrictions


Previous Next Contents Index

   
Burgundy bar
DIGITAL Home Feedback Search Sitemap Subscribe Help
Legal