XL C/C++ V8.0 for AIX
  Getting Started
    About this document
      Who should read this document
      How to use this document
      How this document is organized
      Conventions and terminology used in this document
        Typographical conventions
        How to read syntax diagrams
        Examples
    Overview of XL C/C++ features
      Commonality with other XL compilers
      Documentation, online help, and technical support
      Hardware and operating system support
      Highly configurable compiler
      Language standards compliance
        Compatibility with GNU
        Source-code migration and conformance checking
      Libraries
        Standard C++ library
        Mathematics Acceleration Subsystem libraries
        Basic Linear Algebra Subprograms
      Tools and utilities
      Program optimization
      64-bit object capability
      Shared memory parallelization
        OpenMP directives
      Diagnostic listings
      Symbolic debugger support
    What's new for V8.0
      Performance and optimization
        Architecture and processor-specific code tuning
        High performance libraries
        VMX support
        Other performance-related compiler options and directives
        Built-in functions new for this release
      Support for language enhancements and APIs
        New type traits library
        OpenMP API V2.5 support for C, C++, and Fortran
        VMX APIs
      Ease of use
        IBM Debugger for AIX
        Support for IBM Tivoli License Manager
      New compiler options
        New command line options
        New pragma directives
    Setting up and customizing XL C/C++
      Environment variables and XL C/C++
        Setting the compiler working environment
        Setting the default runtime options
      Customizing the configuration file
      Determining what level of XL C/C++ is installed
    Editing, compiling, and linking programs with XL C/C++
      The compiler phases
      Editing C and C++ source files
      Compiling with XL C/C++
        Compiling parallelized XL C/C++ applications
      XL C/C++ input files
      XL C/C++ output files
      Specifying compiler options
      Linking XL C/C++ programs
        Compiling and linking in separate steps
        Relinking an existing executable file
        Dynamic and static linking
    Running XL C/C++ programs
      Canceling execution
      Setting runtime options
    XL C/C++ compiler diagnostic aids
      Compilation return codes
      XL C/C++ compiler listings
        Header section
        Options section
        Source section
        Transformation report section
        Attribute and cross-reference section
        Object section
        File table section
        Compilation unit epilogue section
        Compilation epilogue section
      Debugging compiled applications
  Language Reference
    About this document
      Who should read this document
      Supported language standards
        Other standards and specifications
      Language levels and language extensions
        Extensions to C++ to support C99 standard features
        Extensions related to GNU C and C++
        Extensions supporting the AltiVec Programming Interface
      How to use this document
      How this document is organized
      Conventions used in this document
        Typographical conventions
        Qualifying elements (icons and bracket separators)
        How to read syntax diagrams
        Examples
      Related publications
    Scope and linkage
      Scope
        Block/local scope
        Function scope
        Function prototype scope
        File/global scope
        Examples of scope in C
        Class scope (C++ only)
        Namespaces of identifiers
        Name hiding (C++ only)
      Program linkage
        Internal linkage
        External linkage
        No linkage
        Language linkage (C++ only)
    Lexical Elements
      Tokens
        Keywords
        Identifiers
        Literals
        Punctuators and operators
      Source program character set
        Multibyte characters
        Escape sequences
        The Unicode standard
        Digraph characters
        Trigraph sequences
      Comments
    Data objects and declarations
      Overview of data objects and declarations
        Overview of data objects
        Overview of data declarations and definitions
      Storage class specifiers
        The auto storage class specifier
        The static storage class specifier
        The extern storage class specifier
        The mutable storage class specifier (C++ only)
        The register storage class specifier
      Type specifiers
        Integral types
        Boolean types
        Floating-point types
        Character types
        The void type
        Compatibility of arithmetic types (C only)
        Vector types
      User-defined types
        Structures and unions
        Enumerations
        Compatibility of structures, unions, and enumerations (C only)
        typedef definitions
      Type qualifiers
        The const type qualifier
        The volatile type qualifier
        The restrict type qualifier
        The __align qualifier
      Type attributes
        The aligned type attribute
        The packed type attribute
        The transparent_union type attribute (C only)
    Declarators
      Overview of declarators
        Examples of declarators
      Type names
      Pointers
        Pointer arithmetic
        Type-based aliasing
        Compatibility of pointers (C only)
      Arrays
        Variable length arrays
        Compatibility of arrays
      References (C++ only)
      Initializers
        Initialization and storage classes
        Designated initializers for aggregate types (C only)
        Initialization of vectors
        Initialization of structures and unions
        Initialization of enumerations
        Initialization of pointers
        Initialization of arrays
        Initialization of references (C++ only)
      Variable attributes
        The aligned variable attribute
        The packed variable attribute
        The mode variable attribute
        The weak variable attribute
    Type conversions
      Arithmetic conversions and promotions
        Integral conversions
        Boolean conversions
        Floating-point conversions
        Integral and floating-point promotions
      Lvalue-to-rvalue conversions
      Pointer conversions
        Conversion to void*
      Reference conversions (C++ only)
      Qualification conversions (C++ only)
      Function argument conversions
    Expressions and operators
      Lvalues and rvalues
      Primary expressions
        Names
        Literals
        Integer constant expressions
        Identifier expressions (C++ only)
        Parenthesized expressions ( )
        Scope resolution operator :: (C++ only)
      Postfix expressions
        Function call operator ( )
        Array subscripting operator [ ]
        Dot operator .
        Arrow operator ->
        Compound literals
        The typeid operator (C++ only)
        The static_cast operator (C++ only)
        The reinterpret_cast operator (C++ only)
        The const_cast operator (C++ only)
        The dynamic_cast operator (C++ only)
      Unary expressions
        Increment operator ++
        Decrement operator --
        Unary plus operator +
        Unary minus operator
        Logical negation operator !
        Bitwise negation operator ~
        Address operator &
        Indirection operator *
        The __alignof__ operator
        The sizeof operator
        The typeof operator
        Label value operator &&
        The new operator (C++ only)
        The delete operator (C++ only)
        The _Pragma preprocessing operator
        The __real__ and __imag__ operators
      Cast expressions
        Cast to union type (C only)
      Binary expressions
        Multiplication operator *
        Division operator /
        Remainder operator %
        Addition operator +
        Subtraction operator -
        Bitwise left and right shift operators << >>
        Relational operators < > <= >=
        Equality and inequality operators == !=
        Bitwise AND operator &
        Bitwise exclusive OR operator ^
        Bitwise inclusive OR operator |
        Logical AND operator &&
        Logical OR operator ||
        Pointer to member operators .* ->* (C++ only)
      Conditional expressions
        Types in conditional C expressions
        Types in conditional C++ expressions
        Examples of conditional expressions
      Assignment expressions
        Simple assignment operator =
        Compound assignment operators
      Comma expressions
      throw expressions (C++ only)
      Operator precedence and associativity
    Statements
      Labeled statements
        Locally declared labels
        Labels as values
      Expression statements
        Resolution of ambiguous statements
      Block statements
        Example of blocks
        Statement expressions
      Selection statements
        The if statement
        The switch statement
      Iteration statements
        The while statement
        The do statement
        The for statement
      Jump statements
        The break statement
        The continue statement
        The return statement
        The goto statement
      Null statement
      Inline assembly statements
        Examples of inline assembly statements
        Restrictions on inline assembly statements
    Functions
      Function declarations and definitions
        Function declarations
        Function definitions
        Examples of function declarations
        Examples of function definitions
        Compatible functions
        Multiple function declarations
      Function storage class specifiers
        The static storage class specifier
        The extern storage class specifier
      Function specifiers
        The inline function specifier
      Function return type specifiers
        Function return values
      Function declarators
        Parameter declarations
      Function attributes
        The alias function attribute
        The always_inline function attribute
        The const function attribute
        The format function attribute
        The format_arg function attribute
        The noinline function attribute
        The noreturn function attribute
        The pure function attribute
        The weak function attribute
      The main() function
      Function calls
        Pass by value
        Pass by reference
      Default arguments in C++ functions
        Restrictions on default arguments
        Evaluation of default arguments
      Pointers to functions
      Nested functions
    Namespaces (C++ only)
      Defining namespaces (C++ only)
      Declaring namespaces (C++ only)
      Creating a namespace alias (C++ only)
      Creating an alias for a nested namespace (C++ only)
      Extending namespaces (C++ only)
      Namespaces and overloading (C++ only)
      Unnamed namespaces (C++ only)
      Namespace member definitions (C++ only)
      Namespaces and friends (C++ only)
      The using directive (C++ only)
      The using declaration and namespaces (C++ only)
      Explicit access (C++ only)
    Overloading (C++ only)
      Overloading functions (C++ only)
        Restrictions on overloaded functions (C++ only)
      Overloading operators (C++ only)
        Overloading unary operators (C++ only)
        Overloading increment and decrement operators (C++ only)
        Overloading binary operators (C++ only)
        Overloading assignments (C++ only)
        Overloading function calls (C++ only)
        Overloading subscripting (C++ only)
        Overloading class member access (C++ only)
      Overload resolution (C++ only)
        Implicit conversion sequences (C++ only)
        Resolving addresses of overloaded functions (C++ only)
    Classes (C++ only)
      Declaring class types (C++ only)
        Using class objects (C++ only)
      Classes and structures (C++ only)
      Scope of class names (C++ only)
        Incomplete class declarations (C++ only)
        Nested classes (C++ only)
        Local classes (C++ only)
        Local type names (C++ only)
    Class members and friends (C++ only)
      Class member lists (C++ only)
      Data members (C++ only)
      Member functions (C++ only)
        Inline member functions (C++ only)
        Constant and volatile member functions (C++ only)
        Virtual member functions (C++ only)
        Special member functions (C++ only)
      Member scope (C++ only)
      Pointers to members (C++ only)
      The this pointer (C++ only)
      Static members (C++ only)
        Using the class access operators with static members (C++ only)
        Static data members (C++ only)
        Static member functions (C++ only)
      Member access (C++ only)
      Friends (C++ only)
        Friend scope (C++ only)
        Friend access (C++ only)
    Inheritance (C++ only)
      Derivation (C++ only)
      Inherited member access (C++ only)
        Protected members (C++ only)
        Access control of base class members (C++ only)
      The using declaration and class members (C++ only)
        Overloading member functions from base and derived classes (C++ only)
        Changing the access of a class member (C++ only)
      Multiple inheritance (C++ only)
        Virtual base classes (C++ only)
        Multiple access (C++ only)
        Ambiguous base classes (C++ only)
      Virtual functions (C++ only)
        Ambiguous virtual function calls (C++ only)
        Virtual function access (C++ only)
      Abstract classes (C++ only)
    Special member functions (C++ only)
      Overview of constructors and destructors (C++ only)
      Constructors (C++ only)
        Default constructors (C++ only)
        Explicit initialization with constructors (C++ only)
        Initializing base classes and members (C++ only)
        Construction order of derived class objects (C++ only)
      Destructors (C++ only)
        Pseudo-destructors (C++ only)
      Free store (C++ only)
      Temporary objects (C++ only)
      User-defined conversions (C++ only)
        Conversion by constructor (C++ only)
        The explicit specifier (C++ only)
        Conversion functions (C++ only)
      Copy constructors (C++ only)
      Copy assignment operators (C++ only)
    Templates (C++ only)
      Template parameters (C++ only)
        Type template parameters (C++ only)
        Non-type template parameters (C++ only)
        Template template parameters (C++ only)
        Default arguments for template parameters (C++ only)
      Template arguments (C++ only)
        Template type arguments (C++ only)
        Template non-type arguments (C++ only)
        Template template arguments (C++ only)
      Class templates (C++ only)
        Class template declarations and definitions (C++ only)
        Static data members and templates (C++ only)
        Member functions of class templates (C++ only)
        Friends and templates (C++ only)
      Function templates (C++ only)
        Template argument deduction (C++ only)
        Overloading function templates (C++ only)
        Partial ordering of function templates (C++ only)
      Template instantiation (C++ only)
        Implicit instantiation (C++ only)
        Explicit instantiation (C++ only)
      Template specialization (C++ only)
        Explicit specialization (C++ only)
        Partial specialization (C++ only)
      Name binding and dependent names (C++ only)
      The typename keyword (C++ only)
      The template keyword as qualifier (C++ only)
    Exception handling (C++ only)
      try blocks (C++ only)
        Nested try blocks (C++ only)
      catch blocks (C++ only)
        Function try block handlers (C++ only)
        Arguments of catch blocks (C++ only)
        Matching between exceptions thrown and caught (C++ only)
        Order of catching (C++ only)
      throw expressions (C++ only)
        Rethrowing an exception (C++ only)
      Stack unwinding (C++ only)
      Exception specifications (C++ only)
      Special exception handling functions (C++ only)
        The unexpected() function (C++ only)
        The terminate() function (C++ only)
        The set_unexpected() and set_terminate() functions (C++ only)
        Example using the exception handling functions (C++ only)
    Preprocessor Directives
      Macro definition directives
        The #define directive
        The #undef directive
        The # operator
        The ## operator
        Standard predefined macro names
      File inclusion directives
        The #include directive
        The #include_next directive
      Conditional compilation directives
        The #if and #elif directives
        The #ifdef directive
        The #ifndef directive
        The #else directive
        The #endif directive
      Message generation directives
        The #error directive
        The #warning directive
        The #line directive
      Assertion directives
        Predefined assertions
      The null directive (#)
      Pragma directives
        Standard pragmas
    Appendix A. The IBM XL C language extensions
      C99 features as extensions to C89
      Extensions for Unicode support
      Extensions for GNU C compatibility
      Extensions for VMX support
    Appendix B. The IBM XL C++ language extensions
      General IBM extensions
      Extensions for C99 compatibility
      Extensions for Unicode support
      Extensions for GNU C compatibility
      Extensions for GNU C++ compatibility
      Extensions for VMX support
    Appendix C. Vector data types and literals
    Index
  Compiler Reference
    About this document
      Who should read this document
      How to use this document
      How this document is organized
      Conventions used in this document
        Typographical conventions
        Icons
        How to read syntax diagrams
      Related information
     Configuring the compiler
      Setting up the compilation environment
        Setting environment variables
        Setting environment variables to select 32-bit or 64-bit modes
        Setting parallel processing environment variables
        Setting other environment variables
      Customizing the configuration file
        Tailoring a configuration file
        Configuration file attributes
    Invoking the compiler or a compiler component
      Types of input files
      Selecting an appropriate object model
      Controlling the compiler outputs
        Types of output files
        Compiler messages
        Compiler listings
        Compiler return codes
        Paging space errors during compilation
      Invoking the preprocessor
      Invoking the linkage editor
    Specifying compiler options
      Specifying compiler options on the command line
      Specifying compiler options in program source files
      Specifying compiler options in a configuration file
      Resolving conflicting compiler options
      Specifying compiler options for architecture-specific, 32-bit or 64-bit compilation
    Specifying path names for include files
      Directory search sequence for include files using relative path names
    Libraries in XL C/C++
      Redistributable libraries
      Order of linking
    Compiler options reference
      Summary of compiler options by functional category
        Options that control input
        Options that control output
        Options for performance optimization
        Options for error checking and debugging
        Options that control listings and messages
        Options for compatibility
        Options that control integer and floating-point processing
        Options that control linking
        Options for customizing the compiler
      Individual option descriptions
        -+ (plus sign)
        -# (pound sign)
        -q32, -q64
        -qaggrcopy
        -qalias
        -qalign
        -qalloca
        -qaltivec
        -qansialias
        -qarch
        -qasm
        -qasm_as
        -qassert
        -qattr
        -B
        -b
        -qbitfields
        -bmaxdata
        -brtl
        -C
        -c
        -qcache
        -qchars
        -qcheck
        -qcinc
        -qcompact
        -qcpluscmt
        -qcpp_stdinc
        -D
        -qdataimported
        -qdatalocal
        -qdbxextra
        -qdigraph
        -qdirectstorage
        -qdollar
        -qdpcl
        -qdump_class_hierarchy
        -E
        -e
        -qeh
        -qenablevmx
        -qenum
        -qexpfile
        -qextchk
        -F
        -f
        -qfdpr
        -qflag
        -qfloat
        -qflttrap
        -qfold
        -qformat
        -qfullpath
        -qfuncsect
        -G
        -g
        -qgenproto
        -qhalt
        -qhaltonmsg
        -qheapdebug
        -qhot
        -qhsflt
        -qhssngl
        -I
        -qidirfirst
        -qignerrno
        -qignprag
        -qinfo
        -qinitauto
        -qinlglue
        -qinline
        -qipa
        -qisolated_call
        -qkeepinlines
        -qkeepparm
        -qkeyword
        -L
        -l
        -qlanglvl
        -qlargepage
        -qldbl128, -qlongdouble
        -qlibansi
        -qlinedebug
        -qlist
        -qlistopt
        -qlonglit
        -qlonglong
        -M
        -ma
        -MF
        -qmacpstr
        -qmaf
        -qmakedep
        -qmaxerr
        -qmaxmem
        -qmbcs, -qdbcs
        -qmkshrobj
        -qnamemangling
        -O, -qoptimize
        -o
        -qobjmodel
        -qoldpassbyvalue
        -P
        -p
        -qpascal
        -qpath
        -qpdf1, -qpdf2
        -pg
        -qphsinfo
        -qpic
        -qppline
        -qprefetch
        -qprint
        -qpriority
        -qproclocal, -qprocimported, -qprocunknown
        -qproto
        -Q
        -r
        -qreport
        -qreserved_reg
        -qro
        -qroconst
        -qroptr
        -qrrm
        -qrtti
        -S
        -s
        -qsaveopt
        -qshowinc
        -qshowpdf
        -qsmallstack
        -qsmp
        -qsource
        -qsourcetype
        -qspill
        -qspnans
        -qsrcmsg
        -qstaticinline
        -qstatsym
        -qstdinc
        -qstrict
        -qstrict_induction
        -qsuppress
        -qsymtab
        -qsyntaxonly
        -t
        -qtabsize
        -qtbtable
        -qtempinc
        -qtemplaterecompile
        -qtemplateregistry
        -qtempmax
        -qthreaded
        -qtls
        -qtmplinst
        -qtmplparse
        -qtocdata
        -qtocmerge
        -qtrigraph
        -qtune
        -qtwolink
        -U
        -qunique
        -qunroll
        -qunwind
        -qupconv
        -qutf
        -V
        -v
        -qvecnvol
        -qversion
        -qvftable
        -W
        -w
        -qwarn64
        -qwarnfourcharconsts
        -qweaksymbol
        -qxcall
        -qxref
        -y
        -Z
    Reusing GNU C/C++ compiler options with gxlc and gxlc++
      gxlc and gxlc++ syntax
      Configuring the option mapping
    XL C/C++ Pragmas
      Summary of XL C/C++ pragmas
      Summary of IBM SMP and OpenMP pragma directives
      Individual pragma descriptions
        #pragma align
        #pragma alloca
        #pragma altivec_vrsave
        #pragma block_loop
        #pragma chars
        #pragma comment
        #pragma define
        #pragma disjoint
        #pragma do_not_instantiate
        #pragma enum
        #pragma execution_frequency
        #pragma hashome
        #pragma ibm snapshot
        #pragma implementation
        #pragma info
        #pragma instantiate
        #pragma ishome
        #pragma isolated_call
        #pragma langlvl
        #pragma leaves
        #pragma loop_id
        #pragma map
        #pragma mc_func
        #pragma namemangling
        #pragma nameManglingRule
        #pragma nosimd
        #pragma novector
        #pragma object_model
        #pragma options
        #pragma option_override
        #pragma pack
        #pragma pass_by_value
        #pragma priority
        #pragma reachable
        #pragma reg_killed_by
        #pragma report
        #pragma STDC cx_limited_range
        #pragma stream_unroll
        #pragma strings
        #pragma unroll
        #pragma unrollandfuse
        #pragma weak
      Pragma directives for parallel processing
        #pragma ibm critical
        #pragma ibm independent_calls
        #pragma ibm independent_loop
        #pragma ibm iterations
        #pragma ibm parallel_loop
        #pragma ibm permutation
        #pragma ibm schedule
        #pragma ibm sequential_loop
        #pragma omp atomic
        #pragma omp parallel
        #pragma omp for
        #pragma omp ordered
        #pragma omp parallel for
        #pragma omp section, #pragma omp sections
        #pragma omp parallel sections
        #pragma omp single
        #pragma omp master
        #pragma omp critical
        #pragma omp barrier
        #pragma omp flush
        #pragma omp threadprivate
    Predefined macros
      Macros related to language features
      Macros indicating the XL C/C++ compiler
      Macros related to the AIX platform
    Built-in functions for POWER and PowerPC architectures
      Fixed-point built-ins
      Floating-point built-ins
      Synchronization and atomic built-ins
      Cache-related built-ins
      Block-related built-ins
      Built-ins for querying
      Miscellaneous built-ins
      Built-in functions for parallel processing
    Appendix A. National languages support in XL C/C++
      Converting files containing multibyte data to new code pages
      Multibyte character support
    Appendix B. ASCII character set
    Index
  Programming Guide
    About this document
      Conventions and terminology used in this document
        Typographical conventions
        Icons
        How to read syntax diagrams
        Examples
      Related publications
    Using 32-bit and 64-bit modes
      Assigning long values
        Assigning constant values to long variables
        Bit-shifting long values
      Assigning pointers
      Aligning aggregate data
      Calling Fortran code
    Using XL C/C++ with Fortran
      Identifiers
      Corresponding data types
      Character and aggregate data
      Function calls and parameter passing
      Pointers to functions
      Sample program: C/C++ calling Fortran
    Aligning data
      Using alignment modes
        Alignment of aggregates
        Alignment of bit fields
      Using alignment modifiers
        Precedence rules for scalar variables
        Precedence rules for aggregate variables
    Handling floating point operations
      Floating-point formats
        Single-precision and double-precision performance
      Handling multiply-add operations
      Compiling for strict IEEE conformance
      Handling floating-point constant folding and rounding
        Matching compile-time and runtime rounding modes
        Rounding modes and standard library functions
      Handling floating-point exceptions
    Using memory heaps
      Managing memory with multiple heaps
        Functions for managing user-created heaps
        Creating a heap
        Expanding a heap
        Using a heap
        Getting information about a heap
        Closing and destroying a heap
        Changing the default heap used in a program
        Compiling and linking a program with user-created heaps
        Examples of creating and using user heaps
      Debugging memory heaps
        Functions for checking memory heaps
        Functions for debugging memory heaps
        Using memory allocation fill patterns
        Skipping heap checking
        Using stack traces
    Using C++ templates
      Using the -qtempinc compiler option
        Example of -qtempinc
        Regenerating the template instantiation file
        Using -qtempinc with shared libraries
      Using the -qtemplateregistry compiler option
        Recompiling related compilation units
        Switching from -qtempinc to -qtemplateregistry
    Constructing a library
      Compiling and linking a library
        Compiling a static library
        Compiling a shared library
        Linking a shared library to another shared library
      Initializing static objects in libraries (C++)
        Assigning priorities to objects
        Order of object initialization across libraries
      Dynamically loading a shared library
        Loading and initializing a module with the loadAndInit function
        Terminating and unloading a module with the terminateAndUnload function
    Using the C++ utilities
      Demangling compiled C++ names
        Demangling compiled C++ names with c++filt
        Demangling compiled C++ names with the demangle class library
      Creating a shared library with the makeC++SharedLib utility
      Linking with the linkxlC utility
    Optimizing your applications
      Using optimization levels
        Getting the most out of optimization levels 2 and 3
      Optimizing for system architecture
        Getting the most out of target machine options
      Using high-order loop analysis and transformations
        Getting the most out of -qhot
      Using shared-memory parallelism (SMP)
        Getting the most out of -qsmp
      Using interprocedural analysis
        Getting the most from -qipa
      Using profile-directed feedback
        Example of compilation with pdf and showpdf
      Other optimization options
    Coding your application to improve performance
      Find faster input/output techniques
      Reduce function-call overhead
      Manage memory efficiently
      Optimize variables
      Manipulate strings efficiently
      Optimize expressions and program logic
      Optimize operations in 64-bit mode
    Using the high performance libraries
      Using the Mathematical Acceleration Subsystem (MASS)
        Using the scalar library
        Using the vector libraries
        Compiling and linking a program with MASS
      Using the Basic Linear Algebra Subprograms (BLAS)
        BLAS function syntax
        Linking the libxlopt library
    Parallelizing your programs
      Countable loops
      Enabling automatic parallelization
      Using IBM SMP directives (C only)
      Using OpenMP directives
      Shared and private variables in a parallel environment
      Reduction operations in parallelized loops
    Ensuring thread safety (C++)
      Ensuring thread safety of template objects
      Ensuring thread safety of stream objects
    Appendix. Memory debug library functions
      Memory allocation debug functions
        _debug_calloc -- Allocate and initialize memory
        _debug_free -- Free allocated memory
        _debug_heapmin -- Free unused memory in the default heap
        _debug_malloc -- Allocate memory
        _debug_ucalloc -- Reserve and initialize memory from a user-created heap
        _debug_uheapmin -- Free unused memory in a user-created heap
        _debug_umalloc -- Reserve memory blocks from a user-created heap
        _debug_realloc -- Reallocate memory block
      String handling debug functions
        _debug_memcpy -- Copy bytes
        _debug_memset -- Set bytes to value
        _debug_strcat -- Concatenate strings
        _debug_strcpy -- Copy strings
        _debug_strncat -- Concatenate strings
        _debug_strncpy -- Copy strings
        _debug_strnset -- Set characters in a string
        _debug_strset -- Set characters in a string
    Index
  Standard C++ Library Reference
    C++ Library
    C++ Library Overview
      Using C++ Library Headers
      C++ Library Conventions
      Iostreams Conventions
      C++ Program Startup and Termination
    Characters
      Character Sets
        Character Sets and Locales
      Escape Sequences
        Numeric Escape Sequences
      Trigraphs
      Multibyte Characters
        Wide-Character Encoding
    Expressions
    Files and Streams
      Text and Binary Streams
      Byte and Wide Streams
      Controlling Streams
      Stream States
    Functions
    Formatted Input
      Scan Formats
      Scan Functions
      Scan Conversion Specifiers
    Formatted Output
      Print Formats
      Print Functions
      Print Conversion Specifiers
    STL Conventions
      Iterator Conventions
      Algorithm Conventions
    Containers
      Cont
        Cont::begin
        Cont::clear
        Cont::const_iterator
        Cont::const_reference
        Cont::const_reverse_iterator
        Cont::difference_type
        Cont::empty
        Cont::end
        Cont::erase
        Cont::iterator
        Cont::max_size
        Cont::rbegin
        Cont::reference
        Cont::rend
        Cont::reverse_iterator
        Cont::size
        Cont::size_type
        Cont::swap
        Cont::value_type
      operator!=
      operator==
      operator<
      operator<=
      operator
      operator=
      swap
    Preprocessing
    Standard C++ Library Header Files
      <bitset
        bitset
        operator<<
        operator
      <cassert
      <cctype
      <cerrno
      <cfloat
      <ciso646
      <climits
      <clocale
      <cmath
      <complex
        abs
        arg
        complex
        complex<double
        complex<float
        complex<long double
        conj
        cos
        cosh
        exp
        imag
        log
        log10
        norm
        operator!=
        operator*
        operator+
        operator-
        operator/
        operator<<
        operator==
        operator
        polar
        pow
        real
        sin
        sinh
        sqrt
        __STD_COMPLEX
        tan
        tanh
      <csetjmp
      <csignal
      <cstdarg
      <cstddef
      <cstdio
      <cstdlib
      <cstring
      <ctime
      <cwchar
      <cwctype
      <exception
        bad_exception
        exception
        set_terminate
        set_unexpected
        terminate
        terminate_handler
        uncaught_exception
        unexpected
        unexpected_handler
      <fstream
        basic_filebuf
        basic_fstream
        basic_ifstream
        basic_ofstream
        filebuf
        fstream
        ifstream
        ofstream
        wfstream
        wifstream
        wofstream
        wfilebuf
      <iomanip
        resetiosflags
        setbase
        setfill
        setiosflags
        setprecision
        setw
      <ios
        basic_ios
        boolalpha
        dec
        fixed
        fpos
        hex
        internal
        ios
        ios_base
        left
        noboolalpha
        noshowbase
        noshowpoint
        noshowpos
        noskipws
        nounitbuf
        nouppercase
        oct
        right
        scientific
        showbase
        showpoint
        showpos
        skipws
        streamoff
        streampos
        streamsize
        unitbuf
        uppercase
        wios
        wstreampos
      <iosfwd
      <iostream
        cerr
        cin
        clog
        cout
        wcerr
        wcin
        wclog
        wcout
      <istream
        basic_iostream
        basic_istream
        iostream
        istream
        operator
        wiostream
        wistream
        ws
      <limits
        float_denorm_style
        float_round_style
        numeric_limits
      <locale
        codecvt
        codecvt_base
        codecvt_byname
        collate
        collate_byname
        ctype
        ctype<char
        ctype_base
        ctype_byname
        has_facet
        isalnum
        isalpha
        iscntrl
        isdigit
        isgraph
        islower
        isprint
        ispunct
        isspace
        isupper
        isxdigit
        locale
        messages
        messages_base
        messages_byname
        money_base
        money_get
        money_put
        moneypunct
        moneypunct_byname
        num_get
        num_put
        numpunct
        numpunct_byname
        time_base
        time_get
        time_get_byname
        time_put
        time_put_byname
        tolower
        toupper
        use_facet
      <new
        bad_alloc
        new_handler
        nothrow
        nothrow_t
        operator delete
        operator delete[]
        operator new
        operator new[]
        set_new_handler
      <ostream
        basic_ostream
        endl
        ends
        flush
        operator<<
        ostream
        wostream
      <sstream
        basic_stringbuf
        basic_istringstream
        basic_ostringstream
        basic_stringstream
        istringstream
        ostringstream
        stringbuf
        stringstream
        wistringstream
        wostringstream
        wstringbuf
        wstringstream
      <stdexcept
        domain_error
        invalid_argument
        length_error
        logic_error
        out_of_range
        overflow_error
        range_error
        runtime_error
        underflow_error
      <streambuf
        basic_streambuf
        streambuf
        wstreambuf
      <string
        basic_string
        char_traits
        char_traits<char
        char_traits<wchar_t
        getline
        operator+
        operator!=
        operator==
        operator<
        operator<<
        operator<=
        operator
        operator=
        operator
        string
        swap
        wstring
      <strstream
        strstreambuf
        istrstream
        ostrstream
        strstream
      <typeinfo
        bad_cast
        bad_typeid
        type_info
      <valarray
        abs
        acos
        asin
        atan
        atan2
        cos
        cosh
        exp
        gslice
        gslice_array
        indirect_array
        log
        log10
        mask_array
        operator!=
        operator%
        operator&
        operator&&
        operator
        operator
        operator=
        operator<
        operator<<
        operator<=
        operator*
        operator+
        operator-
        operator/
        operator==
        operator^
        operator|
        operator||
        pow
        sin
        sinh
        slice
        slice_array
        sqrt
        tan
        tanh
        valarray
        valarray<bool
    Standard Template Library C++
      <algorithm
        adjacent_find
        binary_search
        copy
        copy_backward
        count
        count_if
        equal
        equal_range
        fill
        fill_n
        find
        find_end
        find_first_of
        find_if
        for_each
        generate
        generate_n
        includes
        inplace_merge
        iter_swap
        lexicographical_compare
        lower_bound
        make_heap
        max
        max_element
        merge
        min
        min_element
        mismatch
        next_permutation
        nth_element
        partial_sort
        partial_sort_copy
        partition
        pop_heap
        prev_permutation
        push_heap
        random_shuffle
        remove
        remove_copy
        remove_copy_if
        remove_if
        replace
        replace_copy
        replace_copy_if
        replace_if
        reverse
        reverse_copy
        rotate
        rotate_copy
        search
        search_n
        set_difference
        set_intersection
        set_symmetric_difference
        set_union
        sort
        sort_heap
        stable_partition
        stable_sort
        swap
        swap_ranges
        transform
        unique
        unique_copy
        upper_bound
      <deque
        deque
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        swap
      <functional
        binary_function
        binary_negate
        bind1st
        bind2nd
        binder1st
        binder2nd
        const_mem_fun_t
        const_mem_fun_ref_t
        const_mem_fun1_t
        const_mem_fun1_ref_t
        divides
        equal_to
        greater
        greater_equal
        hash
        less
        less_equal
        logical_and
        logical_not
        logical_or
        mem_fun
        mem_fun_ref
        mem_fun_t
        mem_fun_ref_t
        mem_fun1_t
        mem_fun1_ref_t
        minus
        modulus
        multiplies
        negate
        not1
        not2
        not_equal_to
        plus
         pointer_to_binary_function
        pointer_to_unary_function
        ptr_fun
        unary_function
        unary_negate
      <iterator
        advance
        back_insert_iterator
        back_inserter
        bidirectional_iterator_tag
        distance
        forward_iterator_tag
        front_insert_iterator
        front_inserter
        input_iterator_tag
        insert_iterator
        inserter
        istream_iterator
        istreambuf_iterator
        iterator
        iterator_traits
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        operator+
        operator-
        ostream_iterator
        ostreambuf_iterator
        output_iterator_tag
        random_access_iterator_tag
        reverse_iterator
      <list
        list
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        swap
      <map
        map
        multimap
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        swap
      <memory
        allocator
        allocator<void
        auto_ptr
        get_temporary_buffer
        operator!=
        operator==
        raw_storage_iterator
         return_temporary_buffer
        uninitialized_copy
        uninitialized_fill
        uninitialized_fill_n
      <numeric
        accumulate
        adjacent_difference
        inner_product
        partial_sum
      <queue
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        priority_queue
        queue
      <set
        multiset
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        set
        swap
      <stack
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        stack
      <unordered_map
        unordered_map
        unordered_multimap
      <unordered_set
        unordered_multiset
        unordered_set
      <utility
        make_pair
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        pair
      <vector
        operator!=
        operator==
        operator<
        operator<=
        operator
        operator=
        swap
        vector
        vector<bool, A
    Appendix A. Type_traits
  Legacy Class Library Reference
    USL I/O Streaming
      The USL I/O Stream Class Hierarchy
      USL I/O Stream Header Files
      The USL I/O Stream Classes and stdio.h
      Use Predefined Streams
      Use Anonymous Streams
      Stream Buffers
      Format State Flags
        Format Stream Output
        Define Your Own Format State Flags
      Manipulators
        Create Manipulators
        Define an APP Parameterized Manipulator
        Define a MANIP Parameterized Manipulator
        Define Nonassociative Parameterized Manipulators
      Thread Safety and USL I/O Streaming
      Basic USL I/O Stream Tasks
        Receive Input from Standard Input
        Display Output on Standard Output or Standard Error
        Flush Output Streams with endl and flush
        Parse Multiple Inputs
        Open a File for Input and Read from the File
        Open a File for Output and Write to the File
        Combine Input and Output of Different Types
      Advanced USL I/O Stream Tasks
        Associate a File with a Standard Input or Output Stream
        Move through a file with filebuf Functions
        Define an Input Operator for a Class Type
        Define an Output Operator for a Class Type
        Correct Input Stream Errors
        Manipulate Strings with the strstream Classes
    USL Complex Mathematics Library
      Review of Complex Numbers
      Header Files and Constants for the complex and c_exception Classes
        Construct complex Objects
      Mathematical Operators for complex
        Use Mathematical Operators for complex
      Friend Functions for complex
        Use Friend Functions with complex
      Input and Output Operators for complex
        Use complex Input and Output Operators
      Error Functions
        Handle complex Mathematics Errors
      Example: Calculate Roots
      Example: Use Equality and Inequality Operators
    Reference
      _CCSID_T
        _CCSID_T - Hierarchy List
        _CCSID_T - Member Functions and Data by Group
        _CCSID_T - Inherited Member Functions and Data
      complex
        complex - Hierarchy List
        complex - Member Functions and Data by Group
        complex - Associated Globals
        complex - Inherited Member Functions and Data
      filebuf
        filebuf - Hierarchy List
        filebuf - Member Functions and Data by Group
        filebuf - Inherited Member Functions and Data
      fstream
        fstream - Hierarchy List
        fstream - Member Functions and Data by Group
        fstream - Inherited Member Functions and Data
      fstreambase
        fstreambase - Hierarchy List
        fstreambase - Member Functions and Data by Group
        fstreambase - Inherited Member Functions and Data
      ifstream
        ifstream - Hierarchy List
        ifstream - Member Functions and Data by Group
        ifstream - Inherited Member Functions and Data
      ios
        ios - Hierarchy List
        ios - Member Functions and Data by Group
        ios - Enumerations
        ios - Inherited Member Functions and Data
      iostream
        iostream - Hierarchy List
        iostream - Member Functions and Data by Group
        iostream - Inherited Member Functions and Data
      iostream_withassign
        iostream_withassign - Hierarchy List
        iostream_withassign - Member Functions and Data by Group
        iostream_withassign - Inherited Member Functions and Data
      istream
        istream - Hierarchy List
        istream - Member Functions and Data by Group
        istream - Inherited Member Functions and Data
      istream_withassign
        istream_withassign - Hierarchy List
        istream_withassign - Member Functions and Data by Group
        istream_withassign - Inherited Member Functions and Data
      istrstream
        istrstream - Hierarchy List
        istrstream - Member Functions and Data by Group
        istrstream - Inherited Member Functions and Data
      ofstream
        ofstream - Hierarchy List
        ofstream - Member Functions and Data by Group
        ofstream - Inherited Member Functions and Data
      ostream
        ostream - Hierarchy List
        ostream - Member Functions and Data by Group
        ostream - Inherited Member Functions and Data
      ostream_withassign
        ostream_withassign - Hierarchy List
        ostream_withassign - Member Functions and Data by Group
        ostream_withassign - Inherited Member Functions and Data
      ostrstream
        ostrstream - Hierarchy List
        ostrstream - Member Functions and Data by Group
        ostrstream - Inherited Member Functions and Data
      stdiobuf
        stdiobuf - Hierarchy List
        stdiobuf - Member Functions and Data by Group
        stdiobuf - Inherited Member Functions and Data
      stdiostream
        stdiostream - Hierarchy List
        stdiostream - Member Functions and Data by Group
        stdiostream - Inherited Member Functions and Data
      streambuf
        streambuf - Hierarchy List
        streambuf - Member Functions and Data by Group
        streambuf - Inherited Member Functions and Data
      strstream
        strstream - Hierarchy List
        strstream - Member Functions and Data by Group
        strstream - Inherited Member Functions and Data
      strstreambase
        strstreambase - Hierarchy List
        strstreambase - Member Functions and Data by Group
        strstreambase - Inherited Member Functions and Data
      strstreambuf
        strstreambuf - Hierarchy List
        strstreambuf - Member Functions and Data by Group
        strstreambuf - Inherited Member Functions and Data
  Installation Guide
    About this document
      Who should read this document
      How to use this document
      How this document is organized
      Conventions and terminology used in this document
        Typographical conventions
      Related information
        IBM XL C/C++ publications
        Related publications
      How to send your comments
    Installation
      Distribution CD layout
      Filesets and packaging
        XL C compiler filesets
        XL C++ compiler filesets
        C++ runtime filesets
        XL SMP runtime environment filesets
        Non-default installation scripts and sample filesets
        XL C/C++ compiler online help filesets
        Runtime debug memory routine filesets
        XL MASS filesets
        IBM Debugger for AIX, Version 3.1 filesets
        Bundle installation filesets
      Installing IBM XL C/C++ Enterprise Edition
        System prerequisites
        Prerequisite tasks or conditions
        Previewing the installation and license agreements
        Product migration installation
        Installing XL C/C++ to the default location
        Installing XL C/C++ to a non-default location
        Installing PTF updates to a non-default installation
        Operating system migration
        Testing the installation
    Administration
      Checking compiler and fileset information
        Using lslpp
        Using -qversion
        Viewing the .vrmf_history file
    Configuring the compiler environment
      Setting up calls to the compiler invocation commands
      Enabling the manual pages
    Uninstallation
      Uninstalling XL C/C++ Enterprise Edition
        From the default location
        From a non-default location
      Uninstalling the E-license agreement
      Uninstalling versions of the MASS components downloaded from the Web
    Viewing the documentation
      Viewing the HTML documentation
      Viewing and printing the PDF documentation
      Viewing the manual pages
Using this information center
  Viewing information in the information center
  Prerequisite software for the information center
  Navigating in the information center
  Searching in the information center
  Setting bookmarks and printing in the information center
  Viewing information in different languages
  Accessibility and keyboard shortcuts in the information center
  Notices
  Feedback