Table of Contents



Table of Contents      

Introduction

Getting Up and Running

 

Debugging

New C++ Features

 

External Interface   

Tutorials

Man Page

FAQ   


Introduction

What is KAI C++?
How to Use This Manual
User's Guide Conventions
How You Can Help Yourself and Others

Getting Up and Running with KAI C++

License Managers
Sample Compilation

Precompiled Headers

Overview
Details
Automatic Precompiled Header Processing
Manual Precompiled Header Processing
Other Ways for Users to Control Precompiled Headers
Organizing Your Sources to Improve PCH Performance

Tutorial: How KAI C++ Improves Performance

Using Higher-Level Abstractions
KAI C++ Transformations
Lightweight Objects
Inlining
Branch Simplification
Constant Folding

Tutorial: Helping the KAI C++ Optimizer

Writing Optimizable Code
Inline Functions
Aliasing
Aliasing in FORTRAN vs. C++
Abstract Float/Pointer
Restrict Keyword

Tutorial: Using Templates with KAI C++

Template Declaration vs. Definition
Automatic Template Instantiation
Explicit Inclusion
Implicit Inclusion
Ad Hoc Approach
Prelinker
Building Libraries that Depend on Automatic Instantiation
Shared Libraries
Archives
One Instantiation Per Object
Closing Libraries
Building Libraries that Do Not Depend on Automatic Instantiation
Structuring Code to Reduce Template Bloat
Sharing via Inheritance
Sharing via Global Functions
Template Features that are Deprecated or Removed
Guiding Declarations
Option --split Removed
Parallel Prelinking is Moot
Other Template Instantiation Modes
Template Instantiation Pragmas

Tutorial: Using Exception-Handling in KAI C++

Reference: Command Line Options

Command-line Options
Keywords
Pragmas

Debugging

Selecting a Debugger
Compiling for Debugging

New C++ Features

Namespaces
Compiling Pre-Namespace Codes
Argument Dependent Name (Koenig) Lookup
New Features for Templates
Template Friend Declarations
Default Arguments for Type Templates
Non-Type Template Parameters for Function Templates
Explicit Instantiation of Templates
Keyword typename
Member templates
ISO Syntax for Full Specialization
Partial Specialization of Class Templates
Partial Ordering of Function Templates
Farewell to Guiding Declarations
Explicit Specification of Function Template Arguments
Default Arguments Instantiated Only When Needed
New-Style Casts
Run-time Type Identification (RTTI)
Note for SGI Users
Types Bool and Wchar_t
New Features for Classes
Mutable
Definition of Nested Class OutSide Enclosing Scope
Static Data Member Declarations
Non-converting Constructors
Friend Definitions
Covariant Return Types for Virtual Functions
Class Name Injection
Farewell to Friend Injection
Array New and Delete
New Features for Statements
Declarations in Tested Conditions
Scope of For-Loop Variable
Return Void
Literal Strings are Const
Const and Volatile Qualifiers Retained on Rvalues
Linkage Specification is Part of Type
Enum Bigger Than Int
New Library Features
I/O Streams
Namespace rel_ops
Traits for Characters
Traits for Iterators
Allocators for Containers
Template Class stack
Templatized complex
Templatized Conversions Between bitset and basic_string
Changes in Template Class valarray
Changes in Template Class auto_ptr
Changes in Template Class allocator
Changes in Template Function get_temporary_buffer

Mythical Features of ISO C++

Frequently Asked Questions

KAI C++ Man Page


Next Section         Copyright © 1996-1999. All rights reserved.

E-Mail KAI Technical Support   E-Mail KAI   Contact KAI   

This file last updated on 30 July 1999.