Updated: 20 January 1999
DIGITAL C++
DIGITAL C++
Using DIGITAL C++ for OpenVMS Alpha
Begin
Index
Contents (summary)
Preface
Preface
Chapter 1
Building and Running DIGITAL C++ Programs
Chapter 2
DIGITAL C++ Implementation
Chapter 3
DIGITAL C++ Language Environment
Chapter 4
Porting to DIGITAL C++
Chapter 5
Using Templates
Chapter 6
Handling C++ Exceptions
Chapter 7
The C++ Standard Library
Chapter 8
Using the OpenVMS Debugger
Appendix A
Programming Tools
Appendix B
Built-In Functions
Index
Figures
Tables
Contents
Preface
Preface
Preface
Chapter 1
1
Building and Running DIGITAL C++ Programs
1.1
Using the DECTPU Text Editor
1.2
Using the DIGITAL C++ Compiler
1.2.1
Compiler Command Qualifiers
1.2.2
Compiler Error Messages
1.3
Linking a DIGITAL C++ Program
1.3.1
Linking to the DIGITAL C++ Standard Library
1.3.2
Linking to the DIGITAL C++ Class Library
1.3.2.1
Linking Against the DIGITAL C++ Class Library Object Library
1.3.2.2
Linking Against the DIGITAL C++ Class Library Shareable Image
1.3.3
Linker Command Qualifiers
1.3.4
Linker Error Messages
1.4
Running a DIGITAL C++ Program
1.4.1
Run-Time Errors
1.4.2
Passing Arguments to the main Function
1.5
Name Demangling
1.5.1
Creating the Data File
1.5.2
Using the CXXDEMANGLE Facility
1.6
Features Specific to OpenVMS Alpha Systems
1.6.1
OpenVMS Calling Standard Conventions
1.6.2
D-Float Support
1.6.3
Built-In Functions
1.7
Performance Optimization Options
Chapter 2
2
DIGITAL C++ Implementation
2.1
Compatibility with Other C++ Compilers
2.2
Implementation-Specific Attributes
2.2.1
#pragma Preprocessor Directive
2.2.1.1
#pragma define_template Directive
2.2.1.2
#pragma environment Directive
2.2.1.3
#pragma extern_model Directive
2.2.1.4
#pragma extern_prefix Directive
2.2.1.5
#pragma function Directive (
Alpha only
)
2.2.1.6
#pragma intrinsic Directive (
Alpha only
)
2.2.1.7
#pragma [no]member_alignment Directive
2.2.1.8
#pragma message Directive
2.2.1.9
#pragma module Directive
2.2.1.10
#pragma once Directive
2.2.1.11
#pragma pack Directive
2.2.1.12
#pragma [no]standard Directive
2.2.2
Predefined Names
2.2.3
Translation Limits
2.2.4
Numerical Limits
2.2.5
Argument-Passing and Return Mechanisms
2.3
Implementation Extensions and Features
2.3.1
Identifiers
2.3.1.1
External Name Encoding
2.3.1.2
Modifying Long Names
2.3.2
Order of Static Object Initialization
2.3.3
Integral Conversions
2.3.4
Floating-Point Conversions
2.3.5
Explicit Type Conversion
2.3.6
The sizeof Operator
2.3.7
Explicit Type Conversion
2.3.8
Multiplicative Operators
2.3.9
Additive Operators (§r.5.7)
2.3.10
Shift Operators (§r.5.8)
2.3.11
Equality Operators
2.3.12
Type Specifiers
2.3.13
asm Declarations
2.3.14
Linkage Specifications
2.3.15
Class Layout
2.3.15.1
Structure Alignment
2.3.15.2
Bit-Fields
2.3.15.3
Access Specifiers
2.3.15.4
Class Subobject Offsets
2.3.16
Virtual Function and Base Class Tables
2.3.17
Multiple Base Classes (§r.10.1)
2.3.18
Temporary Objects
2.3.18.1
Lifetime of Temporary Objects
2.3.18.2
Nonconstant Reference Initialization with a Temporary Object
2.3.18.3
Static Member Functions Selected by Expressions Creating Temporary Objects
2.3.19
File Inclusion
2.3.19.1
Using Quotation Marks
2.3.19.2
Using Angle Brackets
2.3.19.3
Including Text Modules
2.3.20
Nested Enums and Overloading
2.3.21
Guiding Declarations
2.4
Alternative Tokens
2.5
Run-time Type Identification
2.6
Message Control and Information Options
Chapter 3
3
DIGITAL 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 DIGITAL 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
Previous
Next
Contents
Index
Legal