Skip to Main Content United States    
PRODUCTS SUPPORT SOLUTIONS SERVICES
COMPAQ SOFTWARE
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 Iostreams 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     Using RMS Attributes with iostreams
     7.6     Upgrading from the Class Library to the Version 6.n Standard Library
         7.6.1         Upgrading from the Class Library Vector to the Standard Library Vector
         7.6.2         Upgrading from the Class Library Stack to the Standard Library Stack
         7.6.3         Upgrading from the Class Library String Package Code
         7.6.4         Upgrading from the Class Library Complex to the ANSI Complex Class
         7.6.5         Upgrading from the Pre-ANSI iostream library to the Compaq C++ Standard Library


Previous Next Contents Index
Buy Online or Call 1.800.888.0220      privacy statement and legal notices 
STORES CONTACT US SEARCH PRODUCTS SOLUTIONS OPTIONS DEVELOPERS