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
|