ISO-IEC 14882-2003 Information technology — Programming languages — C++

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): ISO
Edition: 2
Publisher: ISO
Year: 2003

Language: English

Contents
1 General
1.1 Scope
1.2 Normative references
1.3 Definitions
1.4 Implementation compliance
1.5 Structure of this International Standard
1.6 Syntax notation
1.7 The C + + memory model
1.8 The C + + object model
1.9 Program execution
1.10 Acknowledgments
2 Lexical conventions
2.1 Phases of translation
2.2 Character sets
2.3 Trigraph sequences
2.4 Preprocessing tokens
2.5 Alternative tokens
2.6 Tokens
2.7 Comments
2.8 Header names
2.9 Preprocessing numbers
2.10 Identifiers
2.11 Keywords
2.12 Operators and punctuators
2.13 Literals
2.13.1 Integer literals
2.13.2 Character literals
2.13.3 Floating literals
2.13.4 String literals
2.13.5 Boolean literals
3 Basic concepts
3.1 Declarations and definitions
3.2 One definition rule
3.3 Declarative regions and scopes
3.3.1 Point of declaration
3.3.2 Local scope
3.3.3 Function prototype scope
3.3.4 Function scope
3.3.5 Namespace scope
3.3.6 Class scope
3.3.7 Name hiding
3.4 Name lookup
3.4.1 Unqualified name lookup
3.4.2 Argument-dependent name lookup
3.4.3 Qualified name lookup
3.4.3.1 Class members
3.4.3.2 Namespace members
3.4.4 Elaborated type specifiers
3.4.5 Class member access
3.4.6 Using-directives and namespace aliases
3.5 Program and linkage
3.6 Start and termination
3.6.1 Main function
3.6.2 Initialization of non-local objects
3.6.3 Termination
3.7 Storage duration
3.7.1 Static storage duration
3.7.2 Automatic storage duration
3.7.3 Dynamic storage duration
3.7.3.1 Allocation functions
3.7.3.2 Deallocation functions
3.7.4 Duration of sub-objects
3.8 Object Lifetime
3.9 Types
3.9.1 Fundamental types
3.9.2 Compound types
3.9.3 CV-qualifiers
3.10 Lvalues and rvalues
4 Standard conversions
4.1 Lvalue-to-rvalue conversion
4.2 Array-to-pointer conversion
4.3 Function-to-pointer conversion
4.4 Qualification conversions
4.5 Integral promotions
4.6 Floating point promotion
4.7 Integral conversions
4.8 Floating point conversions
4.9 Floating-integral conversions
4.10 Pointer conversions
4.11 Pointer to member conversions
4.12 Boolean conversions
5 Expressions
5.1 Primary expressions
5.2 Postfix expressions
5.2.1 Subscripting
5.2.2 Function call
5.2.3 Explicit type conversion (functional notation)
5.2.4 Pseudo destructor call
5.2.5 Class member access
5.2.6 Increment and decrement
5.2.7 Dynamic cast
5.2.8 Type identification
5.2.9 Static cast
5.2.10 Reinterpret cast
5.2.11 Const cast
5.3 Unary expressions
5.3.1 Unary operators
5.3.2 Increment and decrement
5.3.3 Sizeof
5.3.4 New
5.3.5 Delete
5.4 Explicit type conversion (cast notation)
5.5 Pointer-to-member operators
5.6 Multiplicative operators
5.7 Additive operators
5.8 Shift operators
5.9 Relational operators
5.10 Equality operators
5.11 BitwiseANDoperator
5.12 Bitwise exclusiveORoperator
5.13 Bitwise inclusiveORoperator
5.14 LogicalANDoperator
5.15 LogicalORoperator
5.16 Conditional operator
5.17 Assignment operators
5.18 Comma operator
5.19 Constant expressions
6 Statements
6.1 Labeled statement
6.2 Expression statement
6.3 Compound statement or block
6.4 Selection statements
6.4.1 The if statement
6.4.2 The switch statement
6.5 Iteration statements
6.5.1 The while statement
6.5.2 The do statement
6.5.3 The for statement
6.6 Jump statements
6.6.1 The break statement
6.6.2 The continue statement
6.6.3 The return statement
6.6.4 The goto statement
6.7 Declaration statement
6.8 Ambiguity resolution
7 Declarations
7.1 Specifiers
7.1.1 Storage class specifiers
7.1.2 Function specifiers
7.1.3 The typedef specifier
7.1.4 The friend specifier
7.1.5 Type specifiers
7.1.5.1 The cv-qualifiers
7.1.5.2 Simple type specifiers
7.1.5.3 Elaborated type specifiers
7.2 Enumeration declarations
7.3 Namespaces
7.3.1 Namespace definition
7.3.1.1 Unnamed namespaces
7.3.1.2 Namespace member definitions
7.3.2 Namespace alias
7.3.3 Theusingdeclaration
7.3.4 Using directive
7.4 Theasmdeclaration
7.5 Linkage specifications
8 Declarators
8.1 Type names
8.2 Ambiguity resolution
8.3 Meaning of declarators
8.3.1 Pointers
8.3.2 References
8.3.3 Pointers to members
8.3.4 Arrays
8.3.5 Functions
8.3.6 Default arguments
8.4 Function definitions
8.5 Initializers
8.5.1 Aggregates
8.5.2 Character arrays
8.5.3 References
9 Classes
9.1 Class names
9.2 Class members
9.3 Member functions
9.3.1 Nonstatic member functions
9.3.2 The this pointer
9.4 Static members
9.4.1 Static member functions
9.4.2 Static data members
9.5 Unions
9.6 Bit-fields
9.7 Nested class declarations
9.8 Local class declarations
9.9 Nested type names
10 Derived classes
10.1 Multiple base classes
10.2 Member name lookup
10.3 Virtual functions
10.4 Abstract classes
11 Member access control
11.1 Access specifiers
11.2 Accessibility of base classes and base class members
11.3 Access declarations
11.4 Friends
11.5 Protected member access
11.6 Access to virtual functions
11.7 Multiple access
11.8 Nested classes
12 Special member functions
12.1 Constructors
12.2 Temporary objects
12.3 Conversions
12.3.1 Conversion by constructor
12.3.2 Conversion functions
12.4 Destructors
12.5 Free store
12.6 Initialization
12.6.1 Explicit initialization
12.6.2 Initializing bases and members
12.7 Construction and destruction
12.8 Copying class objects
13 Overloading
13.1 Overloadable declarations
13.2 Declaration matching
13.3 Overload resolution
13.3.1 Candidate functions and argument lists
13.3.1.1 Function call syntax
13.3.1.1.1 Call to named function
13.3.1.1.2 Call to object of class type
13.3.1.2 Operators in expressions
13.3.1.3 Initialization by constructor
13.3.1.4 Copy-initialization of class by user-defined conversion
13.3.1.5 Initialization by conversion function
13.3.1.6 Initialization by conversion function for direct reference binding
13.3.2 Viable functions
13.3.3 Best Viable Function
13.3.3.1 Implicit conversion sequences
13.3.3.1.1 Standard conversion sequences
13.3.3.1.2 User-defined conversion sequences
13.3.3.1.3 Ellipsis conversion sequences
13.3.3.1.4 Reference binding
13.3.3.2 Ranking implicit conversion sequences
13.4 Address of overloaded function
13.5 Overloaded operators
13.5.1 Unary operators
13.5.2 Binary operators
13.5.3 Assignment
13.5.4 Function call
13.5.5 Subscripting
13.5.6 Class member access
13.5.7 Increment and decrement
13.6 Built-in operators
14 Templates
14.1 Template parameters
14.2 Names of template specializations
14.3 Template arguments
14.3.1 Template type arguments
14.3.2 Template non-type arguments
14.3.3 Template template arguments
14.4 Type equivalence
14.5 Template declarations
14.5.1 Class templates
14.5.1.1 Member functions of class templates
14.5.1.2 Member classes of class templates
14.5.1.3 Static data members of class templates
14.5.2 Member templates
14.5.3 Friends
14.5.4 Class template partial specializations
14.5.4.1 Matching of class template partial specializations
14.5.4.2 Partial ordering of class template specializations
14.5.4.3 Members of class template specializations
14.5.5 Function templates
14.5.5.1 Function template overloading
14.5.5.2 Partial ordering of function templates
14.6 Name resolution
14.6.1 Locally declared names
14.6.2 Dependent names
14.6.2.1 Dependent types
14.6.2.2 Type-dependent expressions
14.6.2.3 Value-dependent expressions
14.6.2.4 Dependent template arguments
14.6.3 Non-dependent names
14.6.4 Dependent name resolution
14.6.4.1 Point of instantiation
14.6.4.2 Candidate functions
14.6.5 Friend names declared within a class template
14.7 Template instantiation and specialization
14.7.1 Implicit instantiation
14.7.2 Explicit instantiation
14.7.3 Explicit specialization
14.8 Function template specializations
14.8.1 Explicit template argument specification
14.8.2 Template argument deduction
14.8.2.1 Deducing template arguments from a function call
14.8.2.2 Deducing template arguments taking the address of a function template
14.8.2.3 Deducing conversion function template arguments
14.8.2.4 Deducing template arguments from a type
14.8.3 Overload resolution
15 Exception handling
15.1 Throwing an exception
15.2 Constructors and destructors
15.3 Handling an exception
15.4 Exception specifications
15.5 Special functions
15.5.1 The terminate() function
15.5.2 The unexpected() function
15.5.3 The uncaught_exception() function
15.6 Exceptions and access
16 Preprocessing directives
16.1 Conditional inclusion
16.2 Source file inclusion
16.3 Macro replacement
16.3.1 Argument substitution
16.3.2 The # operator
16.3.3 The ## operator
16.3.4 Rescanning and further replacement
16.3.5 Scope of macro definitions
16.4 Line control
16.5 Error directive
16.6 Pragma directive
16.7 Null directive
16.8 Predefined macro names
17 Library introduction
17.1 Definitions
17.2 Additional definitions
17.3 Method of description (Informative)
17.3.1 Structure of each subclause
17.3.1.1 Summary
17.3.1.2 Requirements
17.3.1.3 Specifications
17.3.1.4 C Library
17.3.2 Other conventions
17.3.2.1 Type descriptions
17.3.2.1.1 Enumerated types
17.3.2.1.2 Bitmask types
17.3.2.1.3 Character sequences
17.3.2.1.3.1 Byte strings
17.3.2.1.3.2 Multibyte strings
17.3.2.1.3.3 Wide-character sequences
17.3.2.2 Functions within classes
17.3.2.3 Private members
17.4 Library-wide requirements
17.4.1 Library contents and organization
17.4.1.1 Library contents
17.4.1.2 Headers
17.4.1.3 Freestanding implementations
17.4.2 Using the library
17.4.2.1 Headers
17.4.2.2 Linkage
17.4.3 Constraints on programs
17.4.3.1 Reserved names
17.4.3.1.1 Macro names
17.4.3.1.2 Global names
17.4.3.1.3 External linkage
17.4.3.1.4 Types
17.4.3.2 Headers
17.4.3.3 Derived classes
17.4.3.4 Replacement functions
17.4.3.5 Handler functions
17.4.3.6 Other functions
17.4.3.7 Function arguments
17.4.3.8 Required paragraph
17.4.4 Conforming implementations
17.4.4.1 Headers
17.4.4.2 Restrictions on macro definitions
17.4.4.3 Global or non-member functions
17.4.4.4 Member functions
17.4.4.5 Reentrancy
17.4.4.6 Protection within classes
17.4.4.7 Derived classes
17.4.4.8 Restrictions on exception handling
18 Language support library
18.1 Types
18.2 Implementation properties
18.2.1 Numeric limits
18.2.1.1 Class template numeric_limits
18.2.1.2 numeric_limits members
18.2.1.3 Type float_round_style
18.2.1.4 Type float_denorm_style
18.2.1.5 numeric_limits specializations
18.2.2 C Library
18.3 Start and termination
18.4 Dynamic memory management
18.4.1 Storage allocation and deallocation
18.4.1.1 Single-object forms
18.4.1.2 Array forms
18.4.1.3 Placement forms
18.4.2 Storage allocation errors
18.4.2.1 Class bad_alloc
18.4.2.2 Type new_handler
18.4.2.3 set_new_handler
18.5 Type identification
18.5.1 Class type_info
18.5.2 Class bad_cast
18.5.3 Classbad_typeid
18.6 Exception handling
18.6.1 Classexception
18.6.2 Violating exception-specifications
18.6.2.1 Class bad_exception
18.6.2.2 Type unexpected_handler
18.6.2.3 set_unexpected
18.6.2.4 unexpected
18.6.3 Abnormal termination
18.6.3.1 Type terminate_handler
18.6.3.2 set_terminate
18.6.3.3 terminate
18.6.4 uncaught_exception
18.7 Other runtime support
19 Diagnostics library
19.1 Exception classes
19.1.1 Class logic_error
19.1.2 Class domain_error
19.1.3 Class invalid_argument
19.1.4 Class length_error
19.1.5 Class out_of_range
19.1.6 Class runtime_error
19.1.7 Class range_error
19.1.8 Class overflow_error
19.1.9 Class underflow_error
19.2 Assertions
19.3 Error numbers
20 General utilities library
20.1 Requirements
20.1.1 Equality comparison
20.1.2 Less than comparison
20.1.3 Copy construction
20.1.4 Default construction
20.1.5 Allocator requirements
20.2 Utility components
20.2.1 Operators
20.2.2 Pairs
20.3 Function objects
20.3.1 Base
20.3.2 Arithmetic operations
20.3.3 Comparisons
20.3.4 Logical operations
20.3.5 Negators
20.3.6 Binders
20.3.6.1 Class template binder1st
20.3.6.2 bind1st
20.3.6.3 Class template binder2nd
20.3.6.4 bind2nd
20.3.7 Adaptors for pointers to functions
20.3.8 Adaptors for pointers to members
20.4 Memory
20.4.1 The default allocator
20.4.1.1 allocator members
20.4.1.2 allocator globals
20.4.2 Raw storage iterator
20.4.3 Temporary buffers
20.4.4 Specialized algorithms
20.4.4.1 uninitialized_copy
20.4.4.2 uninitialized_fill
20.4.4.3 uninitialized_fill_n
20.4.5 Class template auto_ptr
20.4.5.1 auto_ptr constructors
20.4.5.2 auto_ptr members
20.4.5.3 auto_ptrc onversions
20.4.6 C Library
20.5 Date and time
21 Strings library
21.1 Character traits
21.1.1 Character traits requirements
21.1.2 traits typedefs
21.1.3 char_traits specializations
21.1.3.1 struct char_traits
21.1.3.2 struct char_traits
21.2 String classes
21.3 Class template basic_string
21.3.1 basic_string constructors
21.3.2 basic_string iterator support
21.3.3 basic_string capacity
21.3.4 basic_string element access
21.3.5 basic_string modifiers
21.3.5.1 basic_string::operator+=
21.3.5.2 basic_string::append
21.3.5.3 basic_string::assign
21.3.5.4 basic_string::insert
21.3.5.5 basic_string::erase
21.3.5.6 basic_string::replace
21.3.5.7 basic_string::copy
21.3.5.8 basic_string::swap
21.3.6 basic_string string operations
21.3.6.1 basic_string::find
21.3.6.2 basic_string::rfind
21.3.6.3 basic_string::find_first_of
21.3.6.4 basic_string::find_last_of
21.3.6.5 basic_string::find_first_not_of
21.3.6.6 basic_string::find_last_not_of
21.3.6.7 basic_string::substr
21.3.6.8 basic_string::compare
21.3.7 basic_string non-member functions
21.3.7.1 operator+
21.3.7.2 operator==
21.3.7.3 operator!=
21.3.7.4 operator<
21.3.7.5 operator>
21.3.7.6 operator<=
21.3.7.7 operator>=
21.3.7.8 swap
21.3.7.9 Inserters and extractors
21.4 Null-terminated sequence utilities
22 Localization library
22.1 Locales
22.1.1 Class locale
22.1.1.1 locale types
22.1.1.1.1 Type locale::category
22.1.1.1.2 Class locale::facet
22.1.1.1.3 Class locale::id
22.1.1.2 locale constructors and destructor
22.1.1.3 locale members
22.1.1.4 locale operators
22.1.1.5 locale static members
22.1.2 locale globals
22.1.3 Convenience interfaces
22.1.3.1 Character classification
22.1.3.2 Character conversions
22.2 Standard locale categories
22.2.1 The ctype category
22.2.1.1 Class template ctype
22.2.1.1.1 ctype members
22.2.1.1.2 ctype virtual functions
22.2.1.2 Class template ctype_byname
22.2.1.3 ctype specializations
22.2.1.3.1 ctype destructor
22.2.1.3.2 ctype members
22.2.1.3.3 ctype static members
22.2.1.3.4 ctype virtual functions
22.2.1.4 Class ctype_byname
22.2.1.5 Class template codecvt
22.2.1.5.1 codecvt members
22.2.1.5.2 codecvt virtual functions
22.2.1.6 Class template codecvt_byname
22.2.2 The numeric category
22.2.2.1 Class template num_get
22.2.2.1.1 num_get members
22.2.2.1.2 num_get virtual functions
22.2.2.2 Class template num_put
22.2.2.2.1 num_put members
22.2.2.2.2 num_put virtual functions
22.2.3 The numeric punctuation facet
22.2.3.1 Class template numpunct
22.2.3.1.1 numpunct members
22.2.3.1.2 numpunct virtual functions
22.2.3.2 Class template numpunct_byname
22.2.4 The collate category
22.2.4.1 Class template collate
22.2.4.1.1collate members
22.2.4.1.2 collate virtual functions
22.2.4.2 Class template collate_byname
22.2.5 The time category
22.2.5.1 Class template time_get
22.2.5.1.1 time_get members
22.2.5.1.2 time_get virtual functions
22.2.5.2 Class template time_get_byname
22.2.5.3 Class template time_put
22.2.5.3.1 time_put members
22.2.5.3.2 time_put virtual functions
22.2.5.4 Class templatet ime_put_byname
22.2.6 The monetary category
22.2.6.1 Class template money_get
22.2.6.1.1 money_get members
22.2.6.1.2 money_get virtual functions
22.2.6.2 Class template money_put
22.2.6.2.1 money_put members
22.2.6.2.2 money_put virtual functions
22.2.6.3 Class template moneypunct
22.2.6.3.1 moneyp unctmembers
22.2.6.3.2 moneypunct virtual functions
22.2.6.4 Class template moneypunct_byname
22.2.7 The message retrieval category
22.2.7.1 Class template messages
22.2.7.1.1 messages members
22.2.7.1.2 messages virtual functions
22.2.7.2 Class template messages_byname
22.2.8 Program-defined facets
22.3 C Library Locales
23 Containers library
23.1 Container requirements
23.1.1 Sequences
23.1.2 Associative containers
23.2 Sequences
23.2.1 Class template deque
23.2.1.1 deque constructors, copy, and assignment
23.2.1.2 deque capacity
23.2.1.3 deque modifiers
23.2.1.4 deque specialized algorithms
23.2.2 Class template list
23.2.2.1 list constructors, copy, and assignment
23.2.2.2 list capacity
23.2.2.3 list modifiers
23.2.2.4 list operations
23.2.2.5 list specialized algorithms
23.2.3 Container adaptors
23.2.3.1 Class template queue
23.2.3.2 Class template priority_queue
23.2.3.2.1 priority_queue constructors
23.2.3.2.2 priority_queue members
23.2.3.3 Class template stack
23.2.4 Class templatevector
23.2.4.1 vector constructors, copy, and assignment
23.2.4.2 vector capacity
23.2.4.3 vector modifiers
23.2.4.4 vector specialized algorithms
23.2.5 Class vector
23.3 Associative containers
23.3.1 Class template map
23.3.1.1 map constructors, copy, and assignment
23.3.1.2 map element access
23.3.1.3 map operations
23.3.1.4 map specialized algorithms
23.3.2 Class template multimap
23.3.2.1 multimap constructors
23.3.2.2 multimap operations
23.3.2.3 multimap specialized algorithms
23.3.3 Class template set
23.3.3.1 set constructors, copy, and assignment
23.3.3.2 set specialized algorithms
23.3.4 Class template multiset
23.3.4.1 multiset constructors
23.3.4.2 multiset specialized algorithms
23.3.5 Class template bitset
23.3.5.1 bitset constructors
23.3.5.2 bitset members
23.3.5.3 bitset operators
24 Iterators library
24.1 Iterator requirements
24.1.1 Input iterators
24.1.2 Output iterators
24.1.3 Forward iterators
24.1.4 Bidirectional iterators
24.1.5 Random access iterators
24.2 Header synopsis
24.3 Iterator primitives
24.3.1 Iterator traits
24.3.2 Basic iterator
24.3.3 Standard iterator tags
24.3.4 Iterator operations
24.4 Predefined iterators
24.4.1 Reverse iterators
24.4.1.1 Class template reverse_iterator
24.4.1.2 reverse_iterator requirements
24.4.1.3 reverse_iterator operations
24.4.2 Insert iterators
24.4.2.1 Class template back_insert_iterator
24.4.2.2 back_insert_iterator operations
24.4.2.3 Class template front_insert_iterator
24.4.2.4 front_insert_iterator operations
24.4.2.5 Class template insert_iterator
24.4.2.6 insert_iterator operations
24.5 Stream iterators
24.5.1 Class template istream_iterator
24.5.1.1 istream_iterator constructors and destructor
24.5.1.2 istream_iterator operations
24.5.2 Class template ostream_iterator
24.5.2.1 ostream_iterator constructors and destructor
24.5.2.2 ostream_iterator operations
24.5.3 Class template istreambuf_iterator
24.5.3.1 Class template istreambuf_iterator::proxy
24.5.3.2 istreambuf_iterator constructors
24.5.3.3 istreambuf_iterator::operator*
24.5.3.4 istreambuf_iterator::operator++
24.5.3.5 istreambuf_iterator::equal
24.5.3.6 operator==
24.5.3.7 operator!=
24.5.4 Class template ostreambuf_iterator
24.5.4.1 ostreambuf_iterator constructors
24.5.4.2 ostreambuf_iterator operations
25 Algorithms library
25.1 Non-modifying sequence operations
25.1.1 For each
25.1.2 Find
25.1.3 Find End
25.1.4 Find First
25.1.5 Adjacent find
25.1.6 Count
25.1.7 Mismatch
25.1.8 Equal
25.1.9 Search
25.2 Mutating sequence operations
25.2.1 Copy
25.2.2 Swap
25.2.3 Transform
25.2.4 Replace
25.2.5 Fill
25.2.6 Generate
25.2.7 Remove
25.2.8 Unique
25.2.9 Reverse
25.2.10 Rotate
25.2.11 Random shuffle
25.2.12 Partitions
25.3 Sorting and related operations
25.3.1 Sorting
25.3.1.1 sort
25.3.1.2 stable_sort
25.3.1.3 partial_sort
25.3.1.4 partial_sort_copy
25.3.2 Nth element
25.3.3 Binary search
25.3.3.1 lower_bound
25.3.3.2 upper_bound
25.3.3.3 equal_range
25.3.3.4 binary_search
25.3.4 Merge
25.3.5 Set operations on sorted structures
25.3.5.1 includes
25.3.5.2 set_union
25.3.5.3 set_intersection
25.3.5.4 set_difference
25.3.5.5 set_symmetric_difference
25.3.6 Heap operations
25.3.6.1 push_heap
25.3.6.2 pop_heap
25.3.6.3 make_heap
25.3.6.4 sort_heap
25.3.7 Minimum and maximum
25.3.8 Lexicographical comparison
25.3.9 Permutation generators
25.4 C library algorithms
26 Numerics library
26.1 Numeric type requirements
26.2 Complex numbers
26.2.1 Header synopsis
26.2.2 Class templatecomplex
26.2.3 complex specializations
26.2.4 complex member functions
26.2.5 complex member operators
26.2.6 complex non-member operations
26.2.7 complex value operations
26.2.8 complex transcendentals
26.3 Numeric arrays
26.3.1 Header synopsis
26.3.2 Class template valarray
26.3.2.1 valarray constructors
26.3.2.2 valarray assignment
26.3.2.3 valarray element access
26.3.2.4 valarray subset operations
26.3.2.5 valarray unary operators
26.3.2.6 valarray computed assignment
26.3.2.7 valarray member functions
26.3.3 valarray non-member operations
26.3.3.1 valarray binary operators
26.3.3.2 valarray logical operators
26.3.3.3 valarray transcendentals
26.3.4 Classslice
26.3.4.1 slice constructors
26.3.4.2 slice access functions
26.3.5 Class template slice_array
26.3.5.1 slice_array constructors
26.3.5.2 slice_array assignment
26.3.5.3 slice_array computed assignment
26.3.5.4 slice_array fill function
26.3.6 The gslice class
26.3.6.1 gslice constructors
26.3.6.2 gslice access functions
26.3.7 Class template gslice_array
26.3.7.1 gslice_array constructors
26.3.7.2 gslice_array assignment
26.3.7.3 gslice_array computed assignment
26.3.7.4 gslice_array fill function
26.3.8 Class template mask_array
26.3.8.1 mask_array constructors
26.3.8.2 mask_array assignment
26.3.8.3 mask_array computed assignment
26.3.8.4 mask_array fill function
26.3.9 Class template indirect_array
26.3.9.1 indirect_array constructors
26.3.9.2 indirect_array assignment
26.3.9.3 indirect_array computed assignment
26.3.9.4 indirect_array fill function
26.4 Generalized numeric operations
26.4.1 Accumulate
26.4.2 Inner product
26.4.3 Partial sum
26.4.4 Adjacent difference
26.5 C Library
27 Input/output library
27.1 Iostreams requirements
27.1.1 Imbue Limitations
27.1.2 Positioning Type Limitations
27.2 Forward declarations
27.3 Standard iostream objects
27.3.1 Narrow stream objects
27.3.2 Wide stream objects
27.4 Iostreams base classes
27.4.1 Types
27.4.2 Class ios_base
27.4.2.1 Types
27.4.2.1.1 Class ios_base::failure
27.4.2.1.2 Type ios_base::fmtflags
27.4.2.1.3 Type ios_base::iostate
27.4.2.1.4 Type ios_base::openmode
27.4.2.1.5 Type ios_base::seekdir
27.4.2.1.6 Class ios_base::Init
27.4.2.2 ios_base fmtflags state functions
27.4.2.3 ios_base locale functions
27.4.2.4 ios_base static members
27.4.2.5 ios_base storage functions
27.4.2.6 ios_base callbacks
27.4.2.7 ios_base constructors/destructors
27.4.3 Class template fpos
27.4.3.1 fpos Members
27.4.3.2 fpos requirements
27.4.4 Class template basic_ios
27.4.4.1 basic_ios constructors
27.4.4.2 Member functions
27.4.4.3 basic_ios iostate flags functions
27.4.5 ios_base manipulators
27.4.5.1 fmtflags manipulators
27.4.5.2 adjustfield manipulators
27.4.5.3 basefield manipulators
27.4.5.4 floatfield manipulators
27.5 Stream buffers
27.5.1 Stream buffer requirements
27.5.2 Class template basic_streambuf
27.5.2.1 basic_streambuf constructors
27.5.2.2 basic_streambuf public member functions
27.5.2.2.1 Locales
27.5.2.2.2 Buffer management and positioning
27.5.2.2.3 Get area
27.5.2.2.4 Putback
27.5.2.2.5 Put area
27.5.2.3 basic_streambuf protected member functions
27.5.2.3.1 Get area access
27.5.2.3.2 Put area access
27.5.2.4 basic_streambuf virtual functions
27.5.2.4.1 Locales
27.5.2.4.2 Buffer management and positioning
27.5.2.4.3 Get area
27.5.2.4.4 Putback
27.5.2.4.5 Put area
27.6 Formatting and manipulators
27.6.1 Input streams
27.6.1.1 Class template basic_istream
27.6.1.1.1 basic_istream constructors
27.6.1.1.2 Class basic_istream::sentry
27.6.1.2 Formatted input functions
27.6.1.2.1 Common requirements
27.6.1.2.2 Arithmetic Extractors
27.6.1.2.3 basic_istream::operator>>
27.6.1.3 Unformatted input functions
27.6.1.4 Standard basic_istream manipulators
27.6.1.5 Class template basic_iostream
27.6.1.5.1 basic_iostream constructors
27.6.1.5.2 basic_iostream destructor
27.6.2 Output streams
27.6.2.1 Class template basic_ostream
27.6.2.2 basic_ostream constructors
27.6.2.3 Class basic_ostream::sentry
27.6.2.4 basic_ostream seek members
27.6.2.5 Formatted output functions
27.6.2.5.1 Common requirements
27.6.2.5.2 Arithmetic Inserters
27.6.2.5.3 basic_ostream::operator<<
27.6.2.5.4 Character inserter function templates
27.6.2.6 Unformatted output functions
27.6.2.7 Standard basic_ostream manipulators
27.6.3 Standard manipulators
27.7 String-based streams
27.7.1 Class template basic_stringbuf
27.7.1.1 basic_stringbuf constructors
27.7.1.2 Member functions
27.7.1.3 Overridden virtual functions
27.7.2 Class template basic_istringstream
27.7.2.1 basic_istringstream constructors
27.7.2.2 Member functions
27.7.3 Class basic_ostringstream
27.7.3.1 basic_ostringstream constructors
27.7.3.2 Member functions
27.7.4 Class template basic_stringstream
27.7.5 basic_stringstream constructors
27.7.6 Member functions
27.8 File-based streams
27.8.1 File streams
27.8.1.1 Class template basic_filebuf
27.8.1.2 basic_filebuf constructors
27.8.1.3 Member functions
27.8.1.4 Overridden virtual functions
27.8.1.5 Class template basic_ifstream
27.8.1.6 basic_ifstream constructors
27.8.1.7 Member functions
27.8.1.8 Class template basic_ofstream
27.8.1.9 basic_ofstream constructors
27.8.1.10 Member functions
27.8.1.11 Class template basic_fstream
27.8.1.12 basic_fstreamconstructors
27.8.1.13 Member functions
27.8.2 C Library files
Annex A - Grammar summary
A.1 Keywords
A.2 Lexical conventions
A.3 Basic concepts
A.4 Expressions
A.5 Statements
A.6 Declarations
A.7 Declarators
A.8 Classes
A.9 Derived classes
A.10 Special member functions
A.11 Overloading
A.12 Templates
A.13 Exception handling
A.14 Preprocessing directives
Annex B - Implementation quantities
Annex C - Compatibility
C.1 C + + and ISO C
C.1.1 Clause 2: lexical conventions
C.1.2 Clause 3: basic concepts
C.1.3 Clause 5: expressions
C.1.4 Clause 6: statements
C.1.5 Clause 7: declarations
C.1.6 Clause 8: declarators
C.1.7 Clause 9: classes
C.1.8 Clause 12: special member functions
C.1.9 Clause 16: preprocessing directives
C.2 Standard C library
C.2.1 Modifications to headers
C.2.2 Modifications to definitions
C.2.2.1 Type wchar_t
C.2.2.2 Header
C.2.2.3 Macro NULL
C.2.3 Modifications to declarations
C.2.4 Modifications to behavior
C.2.4.1 Macro offsetof(type,member-designator)
C.2.4.2 Memory allocation functions
Annex D - Compatibility features
D.1 Increment operator with bool operand
D.2 static keyword
D.3 Access declarations
D.4 Implicit conversion from const strings
D.5 Standard C library headers
D.6 Old iostreams members
D.7 char* streams
D.7.1 Class strstreambuf
D.7.1.2 Member functions
D.7.1.3 strstreambuf overridden virtual functions
D.7.2 Class istrstream
D.7.2.1 istrstream constructors
D.7.2.2 Member functions
D.7.3 Class ostrstream
D.7.3.1 ostrstream constructors
D.7.3.2 Member functions
D.7.4 Class strstream
D.7.4.1 strstream constructors
D.7.4.2 strstream destructor
D.7.4.3 strstream operations
Annex E - Universal-character-names
Index
A
B
C
D
E
F
G
H
I
JKL
M
N
O
P
QR
S
T
U
V
W
XYZ