DIGITAL C++
Using DIGITAL C++ for DIGITAL UNIX Systems


Previous Contents Index

Chapter 5
5 Using Templates
     5.1     Overview
     5.2     Automatic Template Instantiation
     5.3     Implicit Inclusion
         5.3.1         Compiling Programs with Automatic Instantiation
         5.3.2         Linking Programs with Automatic Instantiation
     5.4     Manual Template Instantiation
         5.4.1         Instantiation Directives
     5.5     Advanced Program Development and Templates
         5.5.1         Dependency Management
         5.5.2         Mixing Automatic and Manual Instantiation
         5.5.3         Creating Libraries
         5.5.4         Multiple Repositories
     5.6     Command-Line Options for Template Instantiation
     5.7     Compatibility with Earlier Versions of DIGITAL C++
         5.7.1         Linking with Version 5.n Instantiations
     5.8     Linking Version 5.n Applications Against Version 6.0 Repositories
Chapter 6
6 Precompiled Headers
     6.1     Automatic Precompiled Header Processing
     6.2     Manual Precompiled Header Processing
     6.3     Other Ways for Users To Control Precompiled Headers
     6.4     Performance Issues
     6.5     Command-Line Options for Precompiled Headers
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         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     Upgrading from the DIGITAL C++ Class Library to the Standard Library Provided with Version 6.0
         7.4.1         Upgrading from the DIGITAL C++ Class Library Vector to the Standard Library Vector
         7.4.2         Upgrading from the DIGITAL C++ Class Library Stack to the Standard Library Stack
         7.4.3         Upgrading from the DIGITAL C++ String Package Code
         7.4.4         Upgrading from the DIGITAL C++ Class Library Complex to the ANSI Complex Class
         7.4.5         Upgrading from the DIGITAL C++ IOStreams library to the DIGITAL C++ Standard Library
         7.4.6         Upgrading Pre-ANSI bit_vector to ANSI vector<bool>
Chapter 8
8 Handling Exceptions
     8.1     Structure
     8.2     Run-Time Considerations
     8.3     Coding Recommendations
     8.4     Mixed-Language Applications
     8.5     Hints on Using Exception Handlers
         8.5.1         Propagating Changes from Exception Handlers
         8.5.2         Using the unexpected and terminate Functions
         8.5.3         Specification Conflicts
         8.5.4         Using the dlclose Routine
Chapter 9
9 Using the Ladebug Debugger
     9.1     Debugging C++ Programs
     9.2     Debugging Programs Containing C and C++ Code
     9.3     Setting the Class Scope
     9.4     Displaying Class Information
     9.5     Displaying Object Information
     9.6     Displaying Virtual and Inherited Class Information
     9.7     Modifying Class and Object Data Members
     9.8     Member Functions on the Stack Trace
     9.9     Resolving Ambiguous References to Overloaded Functions
     9.10     Setting Breakpoints in Member Functions
         9.10.1         Setting Breakpoints in Overloaded Functions
         9.10.2         Setting Breakpoints in Constructors and Destructors
     9.11     Calling Overloaded Functions
     9.12     Using Typecasts to Display Program Expressions
     9.13     Class Templates and Function Templates
     9.14     Debugging C++ Exception Handlers
         9.14.1         Setting Breakpoints in Exception Handlers
         9.14.2         Examining and Modifying Variables in Exception Handlers
     9.15     Advanced Program Information: Verbose Mode
Index
Index
Examples
9-1 Switching Between C++ and C Debugging Modes
9-2 Setting the Class Scope
9-3 Displaying Class Information
9-4 Displaying Object Information
9-5 Printing Information on a Derived Class
9-6 Resolving References to Objects of Multiple Inherited Classes
9-7 Resolving Overloaded Functions by Selection Menu
9-8 Resolving Overloaded Functions by Type Signature
9-9 Setting Breakpoints in Member Functions
9-10 Setting Breakpoints in Virtual Member Functions
9-11 Setting Breakpoints in Member Functions for a Specific Object
9-12 Setting Breakpoints in Specific Overloaded Functions
9-13 Setting Breakpoints in All Versions of an Overloaded Function
9-14 Setting Breakpoints in Overloaded Functions by Line Number
9-15 Setting Breakpoints in Constructors
9-16 Setting Breakpoints in Destructors
9-17 Calling an Overloaded Function
9-18 Using a Cast to Perform Data Coercion
9-19 Using Casts on a Derived Class Object
9-20 Using a Cast with Pointer Notation to Perform a Type Transfer
9-21 Using a Cast with Reference Type Notation to Perform a Type Transfer
9-22 Example of a Function Template
9-23 Setting a Breakpoint in the Template Function
9-24 Displaying the Current Function Context for a Function Template
9-25 Displaying an Instantiated Class Template
9-26 Displaying an Instantiated Class Template
9-27 Setting Breakpoints in an Instantiated Class Function
9-28 Setting Current Class Scope to an Instantiated Class
9-29 Alternate Method of Setting Current Class Scope
9-30 Setting Breakpoints in Exception Handlers
9-31 Printing a Class Description in Verbose Mode
9-32 Printing Base Pointer Information
9-33 Printing a Stack Trace in Verbose Mode
Figures
2-1 Layout of an Object of D Class
9-1 A Stack Trace Displaying a Member Function
Tables
1 Conventions Used in this Manual
2-1 Predefined Macros
2-2 Other Predefined Names
2-3 Predefined Macros Specific to DIGITAL UNIX Systems
2-4 Implementation Compatibility Macros
2-5 __DECC_VER Version-Type Encodings


Previous Next Contents Index