[an error occurred while processing this directive]

HP OpenVMS Systems

C++ Programming Language
Content starts here HP C++

HP C++
User's Guide for OpenVMS Systems


Previous Contents Index

Chapter 3
3 C++ Language Environment
     3.1     cname Headers
     3.2     Using Existing C Header Files
         3.2.1         Providing C and C++ Linkage
         3.2.2         Resolving C++ Keyword Conflicts
         3.2.3         Handling Scoping Issues
         3.2.4         Support for <stdarg.h> and <varargs.h> Header Files
     3.3     Using HP C++ with Other Languages
     3.4     Linkage to Non-C++ Code and Data
     3.5     How to Organize Your C++ Code
         3.5.1         Code That Does Not Use Templates
         3.5.2         Code That Uses Templates
         3.5.3         Summary
         3.5.4         Creating Libraries
     3.6     Sample Code for Creating OpenVMS Shareable Images
     3.7     Hints for Designing Upwardly Compatible C++ Classes
         3.7.1         Source Compatibility
         3.7.2         Link Compatibility
         3.7.3         Run Compatibility
         3.7.4         Additional Reading
Chapter 4
4 Porting to I64 Systems
     4.1     Compiler Considerations
         4.1.1         Messages
         4.1.2         Quotas
         4.1.3         Dialect Changes
         4.1.4         ABI/Object Model changes
         4.1.5         Command-Line Qualifiers
         4.1.6         Floating Point
         4.1.7         Intrinsics and Builtins
         4.1.8         ELF
         4.1.9         Templates
         4.1.10         Exceptions and Condition Handlers
             4.1.10.1             Stack unwinding
             4.1.10.2             Exceptions Not Caught
             4.1.10.3             terminate() Incorrectly Called
             4.1.10.4             Problem in unexpected() Behavior
     4.2     Library Changes
         4.2.1         Library Reorganization
             4.2.1.1             Standard Library and Language Run-Time Support Library
             4.2.1.2             Class Library
         4.2.2         Language Run-Time Support Library
         4.2.3         Class Library
         4.2.4         Standard Library
             4.2.4.1             Changes
             4.2.4.2             Library Headers
             4.2.4.3             Internal Library Headers and Macros
             4.2.4.4             Known Issues and Restrictions
             4.2.4.5             Differences Between Alpha and I64 Systems
     4.3     CXXLINK Changes
     4.4     Installation
Chapter 5
5 Using Templates
     5.1     Template Instantiation Model
     5.2     Manual Template Instantiation
         5.2.1         Mixing Automatic and Manual Instantiation
         5.2.2         Instantiation Directives
             5.2.2.1             #pragma define_template
             5.2.2.2             #pragma instantiate and #pragma do_not_instantiate
         5.2.3         Using Command Qualifiers for Manual Instantiation
     5.3     Using Template Object Repositories (ALPHA ONLY)
         5.3.1         Specifying Alternate Repositories
         5.3.2         Reducing Compilation Time with the /TEMPLATE_DEFINE=TIMESTAMP Qualifier
         5.3.3         Compiling Programs with Automatic Instantiation
         5.3.4         Linking Programs with Automatic Instantiation
         5.3.5         Creating Libraries
         5.3.6         Multiple Repositories
     5.4     Using COMDATS (I64 ONLY)
     5.5     Advanced Program Development and Templates
         5.5.1         Implicit Inclusion
         5.5.2         Dependency Management
         5.5.3         Creating a Common Instantiation Library
     5.6     Command-Line Qualifiers for Template Instantiation
         5.6.1         Instantiation Model Qualifiers
         5.6.2         Other Instantiation Qualifiers
         5.6.3         Repository Qualifiers
Chapter 6
6 Handling C++ Exceptions
     6.1     Compiling with Exceptions
     6.2     Linking with Exceptions (ALPHA ONLY)
     6.3     The terminate() and unexpected() Functions
     6.4     C++ Exceptions and Other Conditions
     6.5     C++ Exceptions and Signals (ALPHA ONLY)
     6.6     C++ Exceptions with setjmp and longjmp
     6.7     C++ Exceptions, lib$establish and vaxc$establish
     6.8     Performance Considerations
     6.9     C++ Exceptions and Threads
     6.10     Debugging with C++ Exceptions (ALPHA ONLY)
Chapter 7
7 The C++ Standard Library
     7.1     Important Compatibility Information
         7.1.1         /[NO]USING_STD Compiler Compatibility Qualifier
         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() (ALPHA ONLY)
         7.1.5         Overriding operator new() (I64 ONLY)
         7.1.6         Support for Global array new and delete Operators
         7.1.7         IOStreams Expects Default Floating-Point Format
     7.2     How to Build Programs Using the C++ Standard Library
     7.3     Optional Switch to Control Buffering (ALPHA ONLY)
     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 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 HP C++ Standard Library


Previous Next Contents Index