Table of Contents
1 General [intro]
1.1 Scope [intro.scope]
1.2 Normative references [intro.refs]
1.3 Definitions [intro.defs]
1.4 Syntax notation [syntax]
1.5 The C++ memory model [intro.memory]
1.6 The C++ object model [intro.object]
1.7 Processor compliance [intro.compliance]
1.8 Program execution [intro.execution]
2 Lexical conventions [lex]
2.1 Phases of translation [lex.phases]
2.2 Trigraph sequences [lex.trigraph]
2.3 Preprocessing tokens [lex.pptoken]
2.4 Alternate tokens [lex.digraph]
2.5 Tokens [lex.token]
2.6 Comments [lex.comment]
2.7 Identifiers [lex.name]
2.8 Keywords [lex.key]
2.9 Literals [lex.literal]
2.9.1 Integer literals [lex.icon]
2.9.2 Character literals [lex.ccon]
2.9.3 Floating literals [lex.fcon]
2.9.4 String literals [lex.string]
2.9.5 Boolean literals [lex.bool]
3 Basic concepts [basic]
3.1 Declarations and definitions [basic.def]
3.2 One definition rule [basic.def.odr]
3.3 Declarative regions and scopes [basic.scope]
3.3.1 Local scope [basic.scope.local]
3.3.2 Function prototype scope [basic.scope.proto]
3.3.3 Function scope
3.3.4 Namespace scope [basic.scope.namespace]
3.3.5 Class scope [basic.scope.class]
3.3.6 Name hiding [basic.scope.hiding]
3.3.7 Explicit qualification [basic.scope.exqual]
3.3.8 Elaborated type specifier [basic.scope.elab]
3.3.9 Point of declaration [basic.scope.pdecl]
3.4 Name look up [class.scope]
3.5 Program and linkage [basic.link]
3.6 Start and termination [basic.start]
3.6.1 Main function [basic.start.main]
3.6.2 Initialization of non-local objects [basic.start.init]
3.6.3 Termination [basic.start.term]
3.7 Storage duration and lifetime [basic.stc]
3.7.1 Static storage duration [basic.stc.static]
3.7.2 Automatic storage duration [basic.stc.auto]
3.7.3 Dynamic storage duration [basic.stc.dynamic]
3.7.3.1 Allocation functions [basic.stc.dynamic.allocation]
3.7.3.2 Deallocation functions [basic.stc.dynamic.deallocation]
3.7.4 Duration of sub-objects [basic.stc.inherit]
3.7.5 The mutable keyword [basic.stc.mutable]
3.8 Types [basic.types]
3.8.1 Fundamental types [basic.fundamental]
3.8.2 Compound types [basic.compound]
3.8.3 CV-qualifiers [basic.type.qualifier]
3.8.4 Type names [basic.type.name]
3.9 Lvalues and rvalues [basic.lval]
4 Standard conversions [conv]
4.1 Lvalue-to-rvalue conversion [conv.lval]
4.2 Array-to-pointer conversion [conv.array]
4.3 Function-to-pointer conversion [conv.func]
4.4 Qualification conversions [conv.qual]
4.5 Integral promotions [conv.prom]
4.6 Floating point promotion [conv.fpprom]
4.7 Integral conversions [conv.integral]
4.8 Floating point conversions [conv.double]
4.9 Floating-integral conversions [conv.fpint]
4.10 Pointer conversions [conv.ptr]
4.11 Pointer to member conversions [conv.mem]
4.12 Base class conversion [conv.class]
4.13 Boolean conversions [conv.bool]
5 Expressions [expr]
5.1 Primary expressions [expr.prim]
5.2 Postfix expressions [expr.post]
5.2.1 Subscripting [expr.sub]
5.2.2 Function call [expr.call]
5.2.3 Explicit type conversion (functional notation) [expr.type.conv]
5.2.4 Class member access [expr.ref]
5.2.5 Increment and decrement [expr.post.incr]
5.2.6 Dynamic cast [expr.dynamic.cast]
5.2.7 Type identification [expr.typeid]
5.2.8 Static cast [expr.static.cast]
5.2.9 Reinterpret cast [expr.reinterpret.cast]
5.2.10 Const cast [expr.const.cast]
5.3 Unary expressions [expr.unary]
5.3.1 Unary operators [expr.unary.op]
5.3.2 Increment and decrement [expr.pre.incr]
5.3.3 Sizeof [expr.sizeof]
5.3.4 New [expr.new]
5.3.5 Delete [expr.delete]
5.4 Explicit type conversion (cast notation) [expr.cast]
5.5 Pointer-to-member operators [expr.mptr.oper]
5.6 Multiplicative operators [expr.mul]
5.7 Additive operators [expr.add]
5.8 Shift operators [expr.shift]
5.9 Relational operators [expr.rel]
5.10 Equality operators [expr.eq]
5.11 Bitwise AND operator [expr.bit.and]
5.12 Bitwise exclusive OR operator [expr.xor]
5.13 Bitwise inclusive OR operator [expr.or]
5.14 Logical AND operator [expr.log.and]
5.15 Logical OR operator [expr.log.or]
5.16 Conditional operator [expr.cond]
5.17 Assignment operators [expr.ass]
5.18 Comma operator [expr.comma]
5.19 Constant expressions [expr.const]
6 Statements [stmt.stmt]
6.1 Labeled statement [stmt.label]
6.2 Expression statement [stmt.expr]
6.3 Compound statement or block [stmt.block]
6.4 Selection statements [stmt.select]
6.4.1 The if statement [stmt.if]
6.4.2 The switch statement [stmt.switch]
6.5 Iteration statements [stmt.iter]
6.5.1 The while statement [stmt.while]
6.5.2 The do statement [stmt.do]
6.5.3 The for statement [stmt.for]
6.6 Jump statements [stmt.jump]
6.6.1 The break statement [stmt.break]
6.6.2 The continue statement [stmt.cont]
6.6.3 The return statement [stmt.return]
6.6.4 The goto statement [stmt.goto]
6.7 Declaration statement [stmt.dcl]
6.8 Ambiguity resolution [stmt.ambig]
7 Declarations [dcl.dcl]
7.1 Specifiers [dcl.spec]
7.1.1 Storage class specifiers [dcl.stc]
7.1.2 Function specifiers [dcl.fct.spec]
7.1.3 The typedef specifier [dcl.typedef]
7.1.4 The friend specifier [dcl.friend]
7.1.5 Type specifiers [dcl.type]
7.1.5.1 The cv-qualifiers [dcl.type.cv]
7.1.5.2 Simple type specifiers [dcl.type.simple]
7.1.5.3 Elaborated type specifiers [dcl.type.elab]
7.2 Enumeration declarations [dcl.enum]
7.3 Namespaces [basic.namespace]
7.3.1 Namespace definition [namespace.def]
7.3.1.1 Explict qualification [namespace.qual]
7.3.1.2 Unnamed namespaces [namespace.unnamed]
7.3.1.3 Namespace scope [namespace.scope]
7.3.1.4 Namespace member definitions [namespace.memdef]
7.3.2 Namespace or class alias [namespace.alias]
7.3.3 The using declaration [namespace.udecl]
7.3.4 Using directive [namespace.udir]
7.4 The asm declaration [dcl.asm]
7.5 Linkage specifications [dcl.link]
8 Declarators [dcl.decl]
8.1 Type names [dcl.name]
8.2 Ambiguity resolution [dcl.ambig.res]
8.3 Meaning of declarators [dcl.meaning]
8.3.1 Pointers [dcl.ptr]
8.3.2 References [dcl.ref]
8.3.3 Pointers to members [dcl.mptr]
8.3.4 Arrays [dcl.array]
8.3.5 Functions [dcl.fct]
8.3.6 Default arguments [dcl.fct.default]
8.4 Function definitions [dcl.fct.def]
8.5 Initializers [dcl.init]
8.5.1 Aggregates [dcl.init.aggr]
8.5.2 Character arrays [dcl.init.string]
8.5.3 References [dcl.init.ref]
9 Classes [class]
9.1 Class names [class.name]
9.2 Class members [class.mem]
9.3 Scope rules for classes [class.scope0]
9.4 Member functions [class.mfct]
9.4.1 Nonstatic member functions [class.mfct.nonstatic]
9.4.2 The this pointer [class.this]
9.5 Static members [class.static]
9.5.1 Static member functions [class.static.mfct]
9.5.2 Static data members [class.static.data]
9.6 Unions [class.union]
9.7 Bit-fields [class.bit]
9.8 Nested class declarations [class.nest]
9.9 Local class declarations [class.local]
9.10 Nested type names [class.nested.type]
10 Derived classes [class.derived]
10.1 Multiple base classes [class.mi]
10.2 Member Name Lookup [class.member.lookup]
10.3 Virtual functions [class.virtual]
10.4 Abstract classes [class.abstract]
11 Member access control [class.access]
11.1 Access specifiers [class.access.spec]
11.2 Access specifiers for base classes [class.access.base]
11.3 Access declarations [class.access.dcl]
11.4 Friends [class.friend]
11.5 Protected member access [class.protected]
11.6 Access to virtual functions [class.access.virt]
11.7 Multiple access [class.paths]
12 Special member functions [special]
12.1 Constructors [class.ctor]
12.2 Temporary objects [class.temporary]
12.3 Conversions [class.conv]
12.3.1 Conversion by constructor [class.conv.ctor]
12.3.2 Conversion functions [class.conv.fct]
12.4 Destructors [class.dtor]
12.5 Free store [class.free]
12.6 Initialization [class.init]
12.6.1 Explicit initialization [class.expl.init]
12.6.2 Initializing bases and members [class.base.init]
12.7 Construction and destruction [class.cdtor]
12.8 Copying class objects [class.copy]
13 Overloading [over]
13.1 Overloadable declarations [over.load]
13.1.1 Declaration matching [over.dcl]
13.2 Overload resolution [over.match]
13.2.1 Candidate functions and argument lists [over.match.funcs]
13.2.1.1 Function call syntax [over.match.call]
13.2.1.1.1 Call to named function [over.call.func]
13.2.1.1.2 Call to object of class type [over.call.object]
13.2.1.2 Operators in expressions [over.match.oper]
13.2.1.3 Initialization by user-defined conversions [over.match.user]
13.2.1.4 Initialization by constructor [over.match.ctor]
13.2.2 Viable functions [over.match.viable]
13.2.3 Best Viable Function [over.match.best]
13.2.3.1 Implicit conversion sequences [over.best.ics]
13.2.3.1.1 Standard conversion sequences [over.ics.scs]
13.2.3.1.2 User-defined conversion sequences [over.ics.user]
13.2.3.1.3 Ellipsis conversion sequences [over.ics.ellipsis]
13.2.3.1.4 Reference binding [over.ics.ref]
13.2.3.2 Ranking implicit conversion sequences [over.ics.rank]
13.3 Address of overloaded function [over.over]
13.4 Overloaded operators [over.oper]
13.4.1 Unary operators [over.unary]
13.4.2 Binary operators [over.binary]
13.4.3 Assignment [over.ass]
13.4.4 Function call [over.call]
13.4.5 Subscripting [over.sub]
13.4.6 Class member access [over.ref]
13.4.7 Increment and decrement [over.inc]
13.5 Built-in operators [over.built]
14 Templates [temp]
14.1 Template names [temp.names]
14.2 Name resolution [temp.res]
14.2.1 Locally declared names [temp.local]
14.2.2 Names from the template's enclosing scope [temp.encl]
14.2.3 Dependent names [temp.dep]
14.2.4 Non-local names declared within a template [temp.inject]
14.3 Template instantiation [temp.inst]
14.3.1 Template linkage [temp.linkage]
14.3.2 Point of instantiation [temp.point]
14.3.3 Instantiation of operator->
14.4 Explicit instantiation [temp.explicit]
14.5 Template specialization [temp.spec]
14.6 Template parameters [temp.param]
14.7 Template arguments [temp.arg]
14.8 Type equivalence [temp.type]
14.9 Function templates [temp.fct]
14.9.1 Explicit template argument specification [temp.arg.explicit]
14.9.2 Template argument deduction [temp.deduct]
14.9.3 Overload resolution [temp.over]
14.9.4 Overloading and specialization [temp.over.spec]
14.10 Member function templates [temp.mem.func]
14.11 Friends [temp.friend]
14.12 Static members and variables [temp.static]
15 Exception handling [except]
15.1 Throwing an exception [except.throw]
15.2 Constructors and destructors [except.ctor]
15.3 Handling an exception [except.handle]
15.4 Exception specifications [except.spec]
15.5 Special functions [except.special]
15.5.1 The terminate() function [except.terminate]
15.5.2 The unexpected() function [except.unexpected]
15.6 Exceptions and access [except.access]
16 Preprocessing directives [cpp]
16.1 Conditional inclusion [cpp.cond]
16.2 Source file inclusion [cpp.include]
16.3 Macro replacement [cpp.replace]
16.3.1 Argument substitution [cpp.subst]
16.3.2 The # operator [cpp.stringize]
16.3.3 The ## operator [cpp.concat]
16.3.4 Rescanning and further replacement [cpp.rescan]
16.3.5 Scope of macro definitions [cpp.scope]
16.4 Line control [cpp.line]
16.5 Error directive [cpp.error]
16.6 Pragma directive [cpp.pragma]
16.7 Null directive [cpp.null]
16.8 Predefined macro names [cpp.predefined]
17 Library introduction [lib.library]
17.1 Definitions [lib.definitions]
17.2 Method of description (Informative) [lib.description]
17.2.1 Structure of each subclause [lib.structure]
17.2.1.1 Summary [lib.structure.summary]
17.2.1.2 Requirements [lib.structure.requirements]
17.2.1.3 Specifications [lib.structure.specifications]
17.2.1.4 C Library [lib.structure.see.also]
17.2.2 Other conventions [lib.conventions]
17.2.2.1 Type descriptions [lib.type.descriptions]
17.2.2.1.1 Enumerated types [lib.enumerated.types]
17.2.2.1.2 Bitmask types [lib.bitmask.types]
17.2.2.1.3 Character sequences [lib.character.seq]
17.2.2.2 Functions within classes [lib.functions.within.classes]
17.2.2.3 Private members [lib.objects.within.classes]
17.2.2.4 Convenient names [lib.unreserved.names]
17.3 Library-wide requirements [lib.requirements]
17.3.1 Library contents and organization [lib.organization]
17.3.1.1 Library contents [lib.contents]
17.3.1.2 Headers [lib.headers]
17.3.1.3 Freestanding implementations [lib.compliance]
17.3.2 Using the library [lib.using]
17.3.2.1 Headers [lib.using.headers]
17.3.2.2 Linkage [lib.using.linkage]
17.3.3 Constraints on programs [lib.constraints]
17.3.3.1 Reserved names [lib.reserved.names]
17.3.3.1.1 Macro names [lib.macro.names]
17.3.3.1.2 Global names [lib.global.names]
17.3.3.1.3 External linkage [lib.extern.names]
17.3.3.2 Headers [lib.alt.headers]
17.3.3.3 Derived classes [lib.derived.classes]
17.3.3.4 Replacement functions [lib.replacement.functions]
17.3.3.5 Handler functions [lib.handler.functions]
17.3.3.6 Function arguments [lib.res.on.arguments]
17.3.4 Conforming implementations [lib.conforming]
17.3.4.1 Headers [lib.res.on.headers]
17.3.4.2 Restrictions on macro definitions [lib.res.on.macro.definitions]
17.3.4.3 Global functions [lib.global.functions]
17.3.4.4 Member functions [lib.member.functions]
17.3.4.5 Reentrancy [lib.reentrancy]
17.3.4.6 Protection within classes [lib.protection.within.classes]
17.3.4.7 Derived classes [lib.derivation]
17.3.4.8 Restrictions on exception handling [lib.res.on.exception.handling]
18 Language support library [lib.language.support]
18.1 Types [lib.support.types]
18.1.1 Values [lib.stddef.values]
18.1.2 Types [lib.stddef.types]
18.2 Implementation properties [lib.support.limits]
18.2.1 Numeric limits [lib.limits]
18.2.1.1 Template class numeric_limits [lib.numeric.limits]
18.2.1.2 numeric_limits members [lib.numeric.limits.members]
18.2.1.3 Type float_round_style [lib.round.style]
18.2.1.4 numeric_limits specializations [lib.numeric.special]
18.2.2 C Library [lib.c.limits]
18.3 Start and termination [lib.support.start.term]
18.3.1 atexit [lib.atexit]
18.3.2 exit [lib.exit]
18.4 Dynamic memory management [lib.support.dynamic]
18.4.1 Storage allocation and deallocation [lib.new.delete]
18.4.1.1 Single-object forms [lib.new.delete.single]
18.4.1.1.1 operator new [lib.op.new]
18.4.1.1.2 operator delete [lib.op.delete]
18.4.1.2 Array forms [lib.new.delete.array]
18.4.1.3 operator new[] [lib.op.new.array]
18.4.1.4 operator delete[] [lib.op.delete.array]
18.4.1.5 Placement forms [lib.new.delete.placement]
18.4.1.5.1 Placement operator new [lib.placement.op.new]
18.4.1.5.2 Placement operator new[] [lib.placement.op.new.array]
18.4.2 Storage allocation errors [lib.alloc.errors]
18.4.2.1 Class bad_alloc [lib.bad.alloc]
18.4.2.1.1 bad_alloc constructor [lib.cons.bad.alloc]
18.4.2.1.2 bad_alloc::what [lib.bad.alloc::what]
18.4.2.2 Type new_handler [lib.new.handler]
18.4.2.3 set_new_handler [lib.set.new.handler]
18.5 Type identification [lib.support.rtti]
18.5.1 Type information [lib.rtti]
18.5.1.1 Class type_info [lib.type.info]
18.5.1.1.1 type_info comparisons [lib.type.info.compare]
18.5.1.1.2 type_info::before [lib.type.info::before]
18.5.1.1.3 type_info::name [lib.type.info::name]
18.5.1.1.4 Copying and assignment [lib.cons.type.info]
18.5.2 Type identification errors [lib.rtti.errors]
18.5.2.1 Class bad_cast [lib.bad.cast]
18.5.2.1.1 bad_cast constructor [lib.cons.bad.cast]
18.5.2.2 Class bad_typeid [lib.bad.typeid]
18.5.2.2.1 bad_typeid constructor [lib.cons.bad.type.id]
18.6 Exception handling [lib.support.exception]
18.6.1 Abnormal termination [lib.exception.terminate]
18.6.1.1 Type terminate_handler [lib.terminate.handler]
18.6.1.2 set_terminate [lib.set.terminate]
18.6.1.3 terminate [lib.terminate]
18.6.2 Violating exception-specifications [lib.exception.unexpected]
18.6.2.1 Class XUNEXPECTED [lib.xunexpected]
18.6.2.2 Type unexpected_handler [lib.unexpected.handler]
18.6.2.3 set_unexpected [lib.set.unexpected]
18.6.2.4 unexpected [lib.unexpected]
18.7 Other runtime support [lib.support.runtime]
19 Diagnostics library [lib.diagnostics]
19.1 Exception classes [lib.std.exceptions]
19.1.1 Class exception [lib.exception]
19.1.1.1 exception constructors [lib.exception.cons]
19.1.1.2 exception destructor [lib.exception.des]
19.1.1.3 exception::what [lib.exception::what]
19.1.2 Class logic_error [lib.logic.error]
19.1.2.1 logic_error constructor [lib.logic.error.cons]
19.1.3 Class domain_error [lib.domain.error]
19.1.3.1 domain_error constructor [lib.domain.error.cons]
19.1.4 Class invalid_argument [lib.invalid.argument]
19.1.4.1 invalid_argument constructor [lib.invalid.argument.cons]
19.1.5 Class length_error [lib.length.error]
19.1.5.1 length_error constructor [lib.length.error.cons]
19.1.6 Class out_of_range [lib.out.of.range]
19.1.6.1 out_of_range constructor [lib.out.of.range.cons]
19.1.7 Class runtime_error [lib.runtime.error]
19.1.7.1 runtime_error constructors [lib.runtime.error.cons]
19.1.8 Class range_error [lib.range.error]
19.1.8.1 range_error constructor [lib.range.error.cons]
19.1.9 Class overflow_error [lib.overflow.error]
19.1.9.1 overflow_error constructor [lib.overflow.error.cons]
19.2 Assertions [lib.assertions]
19.3 Error numbers [lib.errno]
20 General utilities library [lib.utilities]
20.1 Allocator requirements [lib.allocator.requirements]
20.2 Utility components [lib.utility]
20.2.1 Operators [lib.operators]
20.2.2 Tuples [lib.tuples]
20.2.2.1 Empty [lib.empty]
20.2.2.2 Pair [lib.pair]
20.2.3 Restrictor [lib.restrictor]
20.3 Function objects [lib.function.objects]
20.3.1 Base [lib.base]
20.3.2 Arithmetic operations [lib.arithmetic.operations]
20.3.3 Comparisons [lib.comparisons]
20.3.4 Logical operations [lib.logical.operations]
20.3.5 Negators [lib.negators]
20.3.6 Binders [lib.binders]
20.3.6.1 Template class binder1st [lib.binder.1st]
20.3.6.2 bind1st [lib.bind.1st]
20.3.6.3 Template class binder2nd [lib.binder.2nd]
20.3.6.4 bind2nd [lib.bind.2nd]
20.3.7 Adaptors for pointers to functions [lib.function.pointer.adaptors]
20.4 Memory [lib.memory]
20.4.1 The default allocator [lib.default.allocator]
20.4.1.1 allocator members [lib.allocator.members]
20.4.1.2 allocator placement new [lib.allocator.placement]
20.4.1.3 Example allocator [lib.allocator.example]
20.4.2 Raw storage iterator [lib.storage.iterator]
20.4.2.1 raw_storage_iterator members [lib.storage.members]
20.4.3 Memory handling primitives [lib.memory.primitives]
20.4.3.1 allocate [lib.allocate]
20.4.3.2 deallocate [lib.deallocate]
20.4.3.3 construct [lib.construct]
20.4.3.4 destroy [lib.destroy]
20.4.3.5 get_temporary_buffer [lib.get.temporary.buffer]
20.4.4 Specialized algorithms [lib.specialized.algorithms]
20.4.4.1 uninitialized_copy [lib.uninitialized.copy]
20.4.4.2 uninitialized_fill [lib.uninitialized.fill]
20.4.4.3 uninitialized_fill [lib.uninitialized.fill.n]
20.4.5 Pointers [lib.pointers]
20.4.5.1 Template class auto_ptr [lib.auto.ptr]
20.4.5.2 auto_ptr members [lib.auto.ptr.members]
20.4.5.2.1 auto_ptr constructor [lib.auto.ptr::ctor]
20.4.5.2.2 auto_ptr destructor [lib.auto.ptr::dtor]
20.4.5.2.3 operator* [lib.auto.ptr::op*]
20.4.5.2.4 operator-> [lib.auto.ptr::op->]
20.4.5.2.5 release [lib.auto.ptr::release]
20.4.5.2.6 reset [lib.auto.ptr::reset]
20.4.6 C library changes [lib.c.malloc]
20.5 Date and time [lib.date.time]
21 Strings library [lib.strings]
21.1 String classes [lib.string.classes]
21.1.1 Template class basic_string [lib.template.string]
21.1.1.1 Template class string_char_traits [lib.string.char.traits]
21.1.1.2 string_char_traits members [lib.string.char.traits.members]
21.1.1.2.1 assign [lib.char.traits::assign]
21.1.1.2.2 eq [lib.char.traits::eq]
21.1.1.2.3 ne [lib.char.traits::ne]
21.1.1.2.4 lt [lib.char.traits::lt]
21.1.1.2.5 eos [lib.char.traits::eos]
21.1.1.2.6 char_in [lib.char.traits::char.in]
21.1.1.2.7 char_out [lib.char.traits::char.out]
21.1.1.2.8 is_del [lib.char.traits::is.del]
21.1.1.2.9 compare [lib.char.traits::compare]
21.1.1.2.10 length [lib.char.traits::length]
21.1.1.2.11 copy [lib.char.traits::copy]
21.1.1.3 Template class basic_string [lib.basic.string]
21.1.1.4 basic_string member functions [lib.string.members]
21.1.1.4.1 basic_string constructors [lib.string.cons]
21.1.1.4.2 basic_string::operator= [lib.string::op=]
21.1.1.4.3 basic_string::operator+= [lib.string::op+=]
21.1.1.4.4 basic_string::append [lib.string::append]
21.1.1.4.5 basic_string::assign [lib.string::assign]
21.1.1.4.6 basic_string::insert [lib.string::insert]
21.1.1.4.7 basic_string::remove [lib.string::remove]
21.1.1.4.8 basic_string::replace [lib.string::replace]
21.1.1.4.9 basic_string::operator[] [lib.string::op.array]
21.1.1.4.10 basic_string::at [lib.string::at]
21.1.1.4.11 basic_string::c_str [lib.string::c.str]
21.1.1.4.12 basic_string::data [lib.string::data]
21.1.1.4.13 basic_string::size [lib.string::size]
21.1.1.4.14 basic_string::max_size [lib.string::max.size]
21.1.1.4.15 basic_string::resize [lib.string::resize]
21.1.1.4.16 basic_string::reserve [lib.string::reserve]
21.1.1.4.17 basic_string::empty [lib.string::empty]
21.1.1.4.18 basic_string::copy [lib.string::copy]
21.1.1.4.19 basic_string::swap [lib.string::swap]
21.1.1.4.20 basic_string::find [lib.string::find]
21.1.1.4.21 basic_string::rfind [lib.rfind]
21.1.1.4.22 basic_string::find_first_of [lib.string::find.first.of]
21.1.1.4.23 basic_string::find_last_of [lib.string::find.last.of]
21.1.1.4.24 basic_string::find_first_not_of [lib.string::find.first.not.of]
21.1.1.4.25 basic_string::find_last_not_of [lib.string::find.last.not.of]
21.1.1.4.26 basic_string::substr [lib.string::substr]
21.1.1.4.27 basic_string::compare [lib.string::compare]
21.1.1.5 basic_string non-member functions [lib.string.nonmembers]
21.1.1.5.1 operator+ [lib.string::op+]
21.1.1.5.2 operator== [lib.string::operator==]
21.1.1.5.3 operator!= [lib.string::op!=]
21.1.1.5.4 operator< [lib.string::op<]
21.1.1.5.5 operator> [lib.string::op>]
21.1.1.5.6 operator<= [lib.string::op<=]
21.1.1.5.7 operator>= [lib.string::op>=]
21.1.1.5.8 Inserters and extractors
21.1.2 Class string [lib.string]
21.1.3 string_char_traits<char> members [lib.string.traits.members]
21.1.3.1 assign [lib.string.traits::assign]
21.1.3.2 eq [lib.string.traits::eq]
21.1.3.3 ne [lib.string.traits::ne]
21.1.3.4 lt [lib.string.traits::lt]
21.1.3.5 eos [lib.string.traits::eos]
21.1.3.6 compare [lib.string.traits::compare]
21.1.3.7 length [lib.string.traits::length]
21.1.3.8 copy [lib.string.traits::copy]
21.1.4 Class wstring [lib.wstring]
21.1.5 string_char_traits<wchar_t> members [lib.wstring.members]
21.1.5.1 assign [lib.wstring::assign]
21.1.5.2 eq [lib.wstring::eq]
21.1.5.3 ne [lib.wstring::ne]
21.1.5.4 lt [lib.wstring::lt]
21.1.5.5 eos [lib.wstring::eos]
21.1.5.6 compare [lib.wstring::compare]
21.1.5.7 length [lib.wstring::length]
21.1.5.8 copy [lib.wstring::copy]
21.2 Null-terminated sequence utilities [lib.c.strings]
22 Localization library [lib.localization]
22.1 Locales [lib.locales]
22.1.1 Class locale [lib.locale]
22.1.1.1 locale types [lib.locale.types]
22.1.1.1.1 Type locale::category [lib.locale.category]
22.1.1.1.2 Class locale::facet [lib.locale.facet]
22.1.1.1.3 Class locale::id [lib.locale.ctype.id]
22.1.1.2 locale constructors [lib.locale.cons]
22.1.1.3 locale members [lib.locale.members]
22.1.1.3.1 locale::use [lib.locale.use]
22.1.1.3.2 locale::has [lib.locale.has]
22.1.1.3.3 locale::name [lib.locale.name]
22.1.1.4 locale operators [lib.locale.operators]
22.1.1.4.1 locale::operator== [lib.locale.op==]
22.1.1.4.2 locale::operator!= [lib.locale.op!=]
22.1.1.4.3 locale::operator() [lib.locale.op()]
22.1.1.4.4 operator<< [lib.locale.op<<]
22.1.1.4.5 operator>> [lib.locale.op>>]
22.1.1.5 locale static members [lib.locale.statics]
22.1.1.5.1 locale::global [lib.locale.global]
22.1.1.5.2 locale::classic [lib.locale.classic]
22.1.1.5.3 locale::transparent [lib.locale.transparent]
22.1.2 Convenience interfaces [lib.locale.convenience]
22.1.2.1 Character classification [lib.classification]
22.1.2.1.1 isspace [lib.locale.isspace]
22.1.2.1.2 isprint [lib.locale.isprint]
22.1.2.1.3 iscntrl [lib.locale.iscntrl]
22.1.2.1.4 isupper [lib.locale.isupper]
22.1.2.1.5 islower [lib.locale.islower]
22.1.2.1.6 isalpha [lib.locale.isalpha]
22.1.2.1.7 isdigit [lib.locale.isdigit]
22.1.2.1.8 ispunct [lib.locale.ispunct]
22.1.2.1.9 isxdigit [lib.locale.isxdigit]
22.1.2.1.10 isalnum [lib.locale.isalnum]
22.1.2.1.11 isgraph [lib.locale.isgraph]
22.1.2.2 Character conversiona [lib.conversions]
22.1.2.2.1 toupper [lib.locale.toupper]
22.1.2.2.2 tolower [lib.locale.tolower]
22.2 Standard locale facets [lib.std.facets]
22.2.1 The ctype facet [lib.facet.ctype]
22.2.1.1 Template class ctype [lib.locale.ctype]
22.2.1.2 ctype members [lib.locale.ctype.members]
22.2.1.2.1 do_is [lib.locale.ctype::do.is]
22.2.1.2.2 do_scan_is [lib.locale.ctype::do.scan.is]
22.2.1.2.3 do_scan_not [lib.locale.ctype::do.scan.not]
22.2.1.2.4 do_toupper [lib.locale.ctype::do.toupper]
22.2.1.2.5 do_tolower [lib.locale.ctype::do.tolower]
22.2.1.2.6 do_widen [lib.locale.ctype::do.widen]
22.2.1.2.7 do_narrow [lib.locale.ctype::do.narrow]
22.2.1.2.8 is [lib.locale.ctype::is]
22.2.1.2.9 scan_is [lib.locale.ctype::scan.is]
22.2.1.2.10 scan_not [lib.locale.ctype::scan.not]
22.2.1.2.11 toupper [lib.locale.ctype::toupper]
22.2.1.2.12 tolower [lib.locale.ctype::tolower]
22.2.1.2.13 widen [lib.locale.ctype::widen]
22.2.1.2.14 narrow [lib.locale.ctype::narrow]
22.2.1.2.15 ctype constructor [lib.locale.ctype::cons]
22.2.1.3 Template class ctype_byname [lib.locale.ctype.byname]
22.2.2 ctype specializations [lib.facet.ctype.special]
22.2.3 ctype<char> members [lib.facet.ctype.char.members]
22.2.3.1 is [lib.ctype.char::is]
22.2.3.2 scan_is [lib.ctype.char::scan.is]
22.2.3.3 scan_not [lib.ctype.char::scan.not]
22.2.3.4 toupper [lib.ctype.char::toupper]
22.2.3.5 tolower [lib.ctype.char::tolower]
22.2.3.6 widen [lib.ctype.char::widen]
22.2.3.7 narrow [lib.ctype.char::narrow]
22.2.3.8 ctype<char> [lib.ctype.char::ctor]
22.2.3.9 ctype<char> destructor [lib.ctype.char::dtor]
22.2.4 The numeric facet [lib.facet.numeric]
22.2.4.1 Template class num_get [lib.locale.num.get]
22.2.4.2 Template class num_put [lib.locale.num.put]
22.2.5 The numeric punctuation facet [lib.facet.numpunct]
22.2.5.1 Template class numpunct [lib.locale.numpunct]
22.2.5.2 Template class numpunct_byname [lib.locale.numpunct.byname]
22.2.6 The collation facet [lib.facet.collate]
22.2.6.1 Template class collate [lib.locale.collate]
22.2.6.2 collate members [lib.locale.collate.members]
22.2.6.2.1 compare [lib.collate::compare]
22.2.6.2.2 transform [lib.collate::transform]
22.2.6.2.3 hash [lib.collate::hash]
22.2.6.3 Template class collate_byname [lib.locale.collate.byname]
22.2.6.4 collate_byname members [lib.locale.collate.byname.members]
22.2.6.4.1 operator() [lib.collate::op.paren]
22.2.7 The codeset conversion facet [lib.facet.codecvt]
22.2.7.1 Template class codecvt [lib.locale.codecvt]
22.2.7.2 codecvt members [lib.locale.codecvt.members]
22.2.7.2.1 convert [lib.codecvt::convert]
22.2.7.3 Template class codecvt_byname [lib.locale.codecvt.byname]
22.2.8 The date and time facet [lib.facet.date.time]
22.2.8.1 Template class time_get [lib.locale.time.get]
22.2.8.2 Template class time_get_byname [lib.locale.time.get.byname]
22.2.8.3 Template class time_put [lib.locale.time.put]
22.2.8.4 Template class time_put_byname [lib.locale.time.put.byname]
22.2.9 The money facet [lib.facet.money]
22.2.9.1 Template class money_get [lib.locale.money.get]
22.2.9.2 Template class money_put [lib.locale.money.put]
22.2.10 The money punctuation facet [lib.facet.moneypunct]
22.2.10.1 Template class moneypunct [lib.locale.moneypunct]
22.2.10.2 Template class moneypunct_byname [lib.locale.moneypunct.byname]
22.2.11 The message retrieval facet [lib.facet.messages]
22.2.11.1 Template class messages [lib.locale.messages]
22.2.11.2 Tmessages members [lib.locale.messages.members]
22.2.11.3 Template class messages_byname [lib.locale.messages.byname]
22.2.12 User-defined facets [lib.facets.examples]
22.3 C Library Locales [lib.c.locales]
23 Containers library [lib.containers]
23.1 Container requirements [lib.container.requirements]
23.1.1 Sequences [lib.sequence.reqmts]
23.1.2 Associative containers [lib.associative.reqmts]
23.2 Sequences [lib.sequences]
23.2.1 Template class bits [lib.template.bits]
23.2.1.1 bits constructors [lib.cons.bits]
23.2.1.2 bits::operator&= [lib.bits::op&=.bt]
23.2.1.3 bits::operator|= [lib.bits::op|=.bt]
23.2.1.4 bits::operator^= [lib.bits::op^=.bt]
23.2.1.5 bits::operator<<= [lib.bits::op.lsh=]
23.2.1.6 bits::operator>>= [lib.bits::op.rsh=]
23.2.1.7 bits::set [lib.bits::set]
23.2.1.8 bits::reset [lib.bits::reset]
23.2.1.9 bits::operator~ [lib.bits::op~]
23.2.1.10 bits::toggle [lib.bits::toggle]
23.2.1.11 bits::to_ushort [lib.bits::to.ushort]
23.2.1.12 bits::to_ulong [lib.bits::to.ulong]
23.2.1.13 bits::to_string [lib.bits::to.string]
23.2.1.14 bits::count [lib.bits::count]
23.2.1.15 bits::length [lib.bits::length]
23.2.1.16 bits::operator== [lib.bits::op==.bt]
23.2.1.17 bits::operator!= [lib.bits::op!=.bt]
23.2.1.18 bits::test [lib.bits::test]
23.2.1.19 bits::any [lib.bits::any]
23.2.1.20 bits::none [lib.bits::none]
23.2.1.21 bits::operator<< [lib.bits::op.lsh]
23.2.1.22 bits::operator>> [lib.bits::op.rsh]
23.2.1.23 operator& [lib.bits::op&]
23.2.1.24 operator| [lib.bits::op|]
23.2.1.25 \f7operator^ [lib.bits::op^]
23.2.1.26 operator>> [lib.bits::ext]
23.2.1.27 operator<< [lib.bits::ins]
23.2.2 Template class deque [lib.deque]
23.2.2.1 deque members [lib.deque.members]
23.2.2.1.1 assign [lib.deque.assign]
23.2.2.1.2 insert [lib.deque.insert]
23.2.2.1.3 erase [lib.deque.erase]
23.2.2.1.4 resize [lib.deque.resize]
23.2.3 Template class list [lib.list]
23.2.3.1 list members [lib.list.members]
23.2.3.1.1 assign [lib.list.assign]
23.2.3.1.2 insert [lib.list.insert]
23.2.3.1.3 erase [lib.list.erase]
23.2.3.1.4 resize [lib.list.resize]
23.2.3.1.5 splice [lib.list.splice]
23.2.3.1.6 remove [lib.list.remove]
23.2.3.1.7 unique [lib.list.unique]
23.2.3.1.8 merge [lib.list.merge]
23.2.3.1.9 reverse [lib.list.reverse]
23.2.3.1.10 sort [lib.list.sort]
23.2.4 Template class queue [lib.queue]
23.2.5 Template class priority_queue [lib.priority.queue]
23.2.6 priority_queue members [lib.priority.queue.members]
23.2.6.1 priority_queue constructors [lib.priqueue.cons]
23.2.6.2 push [lib.priqueue.push]
23.2.6.3 pop [lib.priqueue.pop]
23.2.7 Template class stack [lib.stack]
23.2.8 Template class vector [lib.vector]
23.2.8.1 vector members [lib.vector.members]
23.2.8.1.1 vector constructor [lib.vector.cons]
23.2.8.1.2 assign [lib.vector.assign]
23.2.8.1.3 capacity [lib.vector.capacity]
23.2.8.1.4 reserve [lib.vector.reserve]
23.2.8.1.5 resize [lib.vector.resize]
23.2.8.1.6 insert [lib.vector.insert]
23.2.8.1.7 erase [lib.vector.erase]
23.2.9 Class vector<bool> [lib.vector.bool]
23.3 Associative containers [lib.associative]
23.3.1 Template class map [lib.map]
23.3.1.1 map members [lib.map.members]
23.3.1.1.1 operator[] lib.map::subscript
23.3.2 Template class multimap [lib.multimap]
23.3.3 Template class set [lib.set]
23.3.4 Template class multiset [lib.multiset]
24 Iterators library [lib.iterators]
24.1 Iterator requirements [lib.iterator.requirements]
24.1.1 Input iterators [lib.input.iterators]
24.1.2 Output iterators [lib.output.iterators]
24.1.3 Forward iterators [lib.forward.iterators]
24.1.4 Bidirectional iterators [lib.bidirectional.iterators]
24.1.5 Random access iterators [lib.random.access.iterators]
24.2 Iterator tags [lib.iterator.tags]
24.2.1 Examples of using iterator tags [lib.examples]
24.2.2 Library defined primitives [lib.library.primitives]
24.2.2.1 Standard iterator tags [lib.std.iterator.tags]
24.2.2.2 Basic iterators [lib.basic.iterators]
24.2.2.3 iterator_category [lib.iterator.category]
24.2.2.4 value_type [lib.value.type]
24.2.2.5 distance_type [lib.distance.type]
24.2.3 Iterator operations [lib.iterator.operations]
24.3 Predefined iterators [lib.predef.iterators]
24.3.1 Reverse iterators [lib.reverse.iterators]
24.3.1.1 Template class reverse_bidirectional_iterator [lib.reverse.bidir.iter]
24.3.1.2 reverse_bidirectional_iterator operations [lib.reverse.bidir.iter.ops]
24.3.1.2.1 reverse_bidirectional_iterator constructor [lib.reverse.bidir.iter.cons]
24.3.1.2.2 Conversion [lib.reverse.bidir.iter.conv]
24.3.1.2.3 operator* [lib.reverse.bidir.iter.op.star]
24.3.1.2.4 operator++ [lib.reverse.bidir.iter.op++]
24.3.1.2.5 operator-- [lib.reverse.bidir.iter.op--]
24.3.1.2.6 operator== [lib.reverse.bidir.iter.op==]
24.3.1.3 Template class reverse_iterator [lib.reverse.iterator]
24.3.1.4 reverse_iterator operations [lib.reverse.iter.ops]
24.3.1.4.1 reverse_iterator constructor [lib.reverse.iter.cons]
24.3.1.4.2 Conversion [lib.reverse.iter.conv]
24.3.1.4.3 operator* [lib.reverse.iter.op.star]
24.3.1.4.4 operator++ [lib.reverse.iter.op++]
24.3.1.4.5 operator-- [lib.reverse.iter.op--]
24.3.1.4.6 operator== [lib.reverse.iter.op==]
24.3.2 Insert iterators [lib.insert.iterators]
24.3.2.1 Template class back_insert_iterator [lib.back.insert.iterator]
24.3.2.2 back_insert_iterator operations [lib.back.insert.iter.ops]
24.3.2.2.1 back_insert_iterator constructor [lib.back.insert.iter.cons]
24.3.2.2.2 back_insert_iterator::operator= [lib.back.insert.iter.op=]
24.3.2.2.3 back_insert_iterator::operator* [lib.back.insert.iter.op*]
24.3.2.2.4 back_insert_iterator::operator++ [lib.back.insert.iter.op++]
24.3.2.2.5 back_inserter [lib.back.inserter]
24.3.2.3 Template class front_insert_iterator [lib.front.insert.iterator]
24.3.2.4 front_insert_iterator operations [lib.front.insert.iter.ops]
24.3.2.4.1 front_insert_iterator constructor [lib.front.insert.iter.cons]
24.3.2.4.2 front_insert_iterator::operator= [lib.front.insert.iter.op=]
24.3.2.4.3 front_insert_iterator::operator* [lib.front.insert.iter.op*]
24.3.2.4.4 front_insert_iterator::operator++ [lib.front.insert.iter.op++]
24.3.2.4.5 front_inserter [lib.front.inserter]
24.3.2.5 Template class insert_iterator [lib.insert.iterator]
24.3.2.6 insert_iterator operations [lib.insert.iter.ops]
24.3.2.6.1 insert_iterator constructor [lib.insert.iter.cons]
24.3.2.6.2 insert_iterator::operator= [lib.insert.iter.op=]
24.3.2.6.3 insert_iterator::operator* [lib.insert.iter.op*]
24.3.2.6.4 insert_iterator::operator++ [lib.insert.iter.op++]
24.3.2.6.5 inserter [lib.inserter]
24.4 Stream iterators [lib.stream.iterators]
24.4.1 Template class istream_iterator [lib.istream.iterator]
24.4.2 Template class ostream_iterator [lib.ostream.iterator]
24.4.3 Template class istreambuf_iterator [lib.istreambuf.iterator]
24.4.3.1 Template class istreambuf_iterator::proxy [lib.istreambuf.iterator::proxy]
24.4.3.2 istreambuf_iterator constructors [lib.istreambuf.iterator.cons]
24.4.3.3 istreambuf_iterator::operator* [lib.istreambuf.iterator::op*]
24.4.3.4 istreambuf_iterator::operator++ [lib.istreambuf.iterator::op++]
24.4.3.5 istreambuf_iterator::equal [lib.istreambuf.iterator::equal]
24.4.3.6 iterator_category [lib.iterator.category.i]
24.4.3.7 operator== [lib.istreambuf.iterator::op==]
24.4.3.8 operator!= [lib.istreambuf.iterator::op!=]
24.4.4 Template class ostreambuf_iterator [lib.ostreambuf.iterator]
24.4.4.1 ostreambuf_iterator operations [lib.ostreambuf.iter.ops]
24.4.4.1.1 ostreambuf_iterator constructors [lib.ostreambuf.iter.cons]
24.4.4.1.2 ostreambuf_iterator::operator= [lib.ostreambuf.iter.op=]
24.4.4.1.3 ostreambuf_iterator::operator* [lib.ostreambuf.iter.op*]
24.4.4.1.4 ostreambuf_iterator::operator++ [lib.ostreambuf.iter.op++]
24.4.4.1.5 ostreambuf_iterator::equal [lib.ostreambuf.iter.equal]
24.4.4.1.6 iterator_category [lib.ostreambuf.iterator.category]
24.4.4.1.7 ostreambuf_iterator operator== [lib.ostreambuf.iterator.op==]
24.4.4.1.8 ostreambuf_iterator operator!= [lib.ostreambuf.iterator.op!=]
25 Algorithms library [lib.algorithms]
25.1 Non-mutating sequence operations [lib.alg.nonmutating]
25.1.1 For each [lib.alg.foreach]
25.1.2 Find [lib.alg.find]
25.1.3 Find End [lib.alg.find.end]
25.1.4 Find First [lib.alg.find.first.of]
25.1.5 Adjacent find [lib.alg.adjacent.find]
25.1.6 Count [lib.alg.count]
25.1.7 Mismatch [lib.mismatch]
25.1.8 Equal [lib.alg.equal]
25.1.9 Search [lib.alg.search]
25.2 Mutating sequence operations [lib.alg.mutating.operations]
25.2.1 Copy [lib.alg.copy]
25.2.1.1 copy [lib.copy]
25.2.1.2 copy_backward [lib.copy.backward]
25.2.2 Swap [lib.alg.swap]
25.2.2.1 swap [lib.swap]
25.2.2.2 swap_ranges [lib.swap.ranges]
25.2.3 Transform [lib.alg.transform]
25.2.4 Replace [lib.alg.replace]
25.2.4.1 replace [lib.replace]
25.2.4.2 replace_copy [lib.replace.copy]
25.2.5 Fill [lib.alg.fill]
25.2.6 Generate [lib.alg.generate]
25.2.7 Remove [lib.alg.remove]
25.2.7.1 remove [lib.remove]
25.2.7.2 remove_copy [lib.remove.copy]
25.2.8 Unique [lib.alg.unique]
25.2.8.1 unique [lib.unique]
25.2.8.2 unique_copy [lib.unique.copy]
25.2.9 Reverse [lib.alg.reverse]
25.2.9.1 reverse [lib.reverse]
25.2.9.2 reverse_copy [lib.reverse.copy]
25.2.10 Rotate [lib.alg.rotate]
25.2.10.1 rotate [lib.rotate]
25.2.10.2 rotate_copy [lib.rotate.copy]
25.2.11 Random shuffle [lib.alg.random.shuffle]
25.2.12 Partitions [lib.alg.partitions]
25.2.12.1 partition [lib.partition]
25.2.12.2 stable_partition [lib.stable.partition]
25.3 Sorting and related operations [lib.alg.sorting]
25.3.1 Sorting [lib.alg.sort]
25.3.1.1 sort [lib.sort]
25.3.1.2 stable_sort [lib.stable.sort]
25.3.1.3 partial_sort [lib.partial.sort]
25.3.1.4 partial_sort_copy [lib.partial.sort.copy]
25.3.2 Nth element [lib.alg.nth.element]
25.3.3 Binary search [lib.alg.binary.search]
25.3.3.1 lower_bound [lib.lower.bound]
25.3.3.2 upper_bound [lib.upper.bound]
25.3.3.3 equal_range [lib.equal.range]
25.3.3.4 binary_search [lib.binary.search]
25.3.4 Merge [lib.alg.merge]
25.3.4.1 merge [lib.merge]
25.3.4.2 inplace_merge [lib.inplace.merge]
25.3.5 Set operations on sorted structures [lib.alg.set.operations]
25.3.5.1 includes [lib.includes]
25.3.5.2 set_union [lib.set.union]
25.3.5.3 set_intersection [lib.set.intersection]
25.3.5.4 set_difference [lib.set.difference]
25.3.5.5 set_symmetric_difference [lib.set.symmetric.difference]
25.3.6 Heap operations [lib.alg.heap.operations]
25.3.6.1 push_heap [lib.push.heap]
25.3.6.2 pop_heap [lib.pop.heap]
25.3.6.3 make_heap [lib.make.heap]
25.3.6.4 sort_heap [lib.sort.heap]
25.3.7 Minimum and maximum [lib.alg.min.max]
25.3.7.1 min [lib.min]
25.3.7.2 max [lib.max]
25.3.7.3 max_element [lib.max.element]
25.3.7.4 min_element [lib.min.element]
25.3.8 Lexicographical comparison [lib.alg.lex.comparison]
25.3.9 Permutation generators [lib.alg.permutation.generators]
25.3.9.1 next_permutation [lib.next.permutation]
25.3.9.2 prev_permutation [lib.prev.permutation]
25.4 C library algorithms [lib.alg.c.library]
26 Numerics library [lib.numerics]
26.1 Complex numbers [lib.complex.numbers]
26.1.1 Complex numbers types [lib.complex.types]
26.1.1.1 Template class complex [lib.complex]
26.1.1.1.1 complex constructor [lib.complex.cons]
26.1.1.1.2 operator+= [lib.complex.op+=]
26.1.1.1.3 operator-= [lib.complex.op-=]
26.1.1.1.4 operator*= [lib.complex.op*=]
26.1.1.1.5 operator/= [lib.complex.op/=]
26.1.1.2 complex operations [lib.complex.ops]
26.1.1.2.1 operator+ [lib.op+.fc.fc]
26.1.1.2.2 operator- [lib.op-.fc.fc]
26.1.1.2.3 operator* [lib.op*.fc.fc]
26.1.1.2.4 operator/ [lib.op/.fc.fc]
26.1.1.2.5 operator== [lib.op==.fc.fc]
26.1.1.2.6 operator!= [lib.op!=.fc.fc]
26.1.1.2.7 operator>> [lib.ext.fc]
26.1.1.2.8 operator<< [lib.ins.fc]
26.1.1.2.9 exp [lib.complex.exp]
26.1.1.3 imag [lib.complex.imag]
26.1.1.4 log [lib.complex.log]
26.1.1.5 norm [lib.complex.norm]
26.1.1.6 polar [lib.complex.polar]
26.1.1.7 pow [lib.complex.pow]
26.1.1.8 real [lib.complex.real]
26.1.1.9 sin [lib.complex.sin]
26.1.1.10 sinh [lib.complex.sinh]
26.1.1.11 sqrt [lib.sqrt]
26.2 Numeric arrays [lib.numarray]
26.2.1 Template class valarray<T> [lib.template.valarray]
26.2.1.1 valarray constructors [lib.valarray.cons]
26.2.1.2 valarray destructor [lib.valarray.des]
26.2.1.3 valarray assignment [lib.valarray.op=]
26.2.1.4 valarray length access [lib.valarray.length]
26.2.1.5 valarray pointer conversion [lib.valarray.ptr]
26.2.1.6 valarray element access [lib.valarray.access]
26.2.1.7 valarray subset operations [lib.valarray.sub]
26.2.1.8 valarray unary operators [lib.valarray.unary]
26.2.1.9 valarray binary operators with scalars [lib.valarray.binary.scal]
26.2.1.10 valarray computed assigns with scalars [lib.valarray.cassign.scal]
26.2.1.11 valarray binary operations with other arrays [lib.valarray.bin.array]
26.2.1.12 valarray computed assignments with other arrays [lib.valarray.assign.array]
26.2.1.13 valarray comparison operators with scalars [lib.valarray.comp.scal]
26.2.1.14 valarray comparison operators with other arrays [lib.valarray.comp.array]
26.2.1.15 valarray sum function [lib.valarray.sum]
26.2.1.16 valarray fill function [lib.valarray.fill]
26.2.1.17 valarray transcendentals [lib.valarray.transcend]
26.2.1.18 valarray min and max functions [lib.valarray.minmax]
26.2.1.19 valarray shift function [lib.valarray.shift]
26.2.1.20 valarray mapping functions [lib.valarray.map]
26.2.1.21 valarray free function [lib.valarray.free]
26.2.2 Class slice [lib.class.slice]
26.2.2.1 slice constructors [lib.cons.slice]
26.2.2.2 slice access functions [lib.slice.access]
26.2.3 Template class slice_array [lib.template.slice.array]
26.2.3.1 slice_array constructors [lib.cons.slice.arr]
26.2.3.2 slice_array assignment [lib.slice.arr.assign]
26.2.3.3 slice_array computed assignment [lib.slice.arr.comp.assign]
26.2.3.4 slice_array fill function [lib.slice.arr.fill]
26.2.4 The gslice class [lib.class.gslice]
26.2.4.1 gslice constructors [lib.gslice.cons]
26.2.4.2 gslice access functions [lib.gslice.access]
26.2.5 Template class gslice_array [lib.template.gslice.array]
26.2.5.1 gslice_array constructors [lib.gslice.array.cons]
26.2.5.2 gslice_array assignment [lib.gslice.array.assign]
26.2.5.3 gslice_array computed assignment [lib.gslice.array.comp.assign]
26.2.5.4 gslice_array fill function [lib.gslice.array.fill]
26.2.6 Template class mask_array [lib.template.mask.array]
26.2.6.1 mask_array constructors [lib.mask.array.cons]
26.2.6.2 mask_array assignment [lib.mask.array.assign]
26.2.6.3 mask_array computed assignment [lib.mask.array.comp.assign]
26.2.6.4 mask_array fill function [lib.mask.array.fill]
26.2.7 Template class indirect_array [lib.template.indirect.array]
26.2.7.1 indirect_array constructors [lib.indirect.array.cons]
26.2.7.2 indirect_array assignment [lib.indirect.array.assign]
26.2.7.3 indirect_array computed assignment [lib.indirect.array.comp.assign]
26.2.7.4 indirect_array fill function [lib.indirect.array.fill]
26.3 Generalized numeric operations [lib.numeric.ops]
26.3.1 Accumulate [lib.accumulate]
26.3.2 Inner product [lib.inner.product]
26.3.3 Partial sum [lib.partial.sum]
26.3.4 Adjacent difference [lib.adjacent.difference]
26.4 C Library [lib.c.math]
27 Input/output library [lib.input.output]
27.1 Iostreams requirements [lib.iostreams.requirements]
27.1.1 Definitions [lib.iostreams.definitions]
27.1.2 Type requirements [lib.iostreams.type.reqmts]
27.1.2.1 Type \f4CHAR_T\fP [lib.iostreams.char.t]
27.1.2.2 Type \f4INT_T\fP [lib.iostreams.int.t]
27.1.2.3 Type \f4OFF_T\fP [lib.iostreams.off.t]
27.1.2.4 Type \f4POS_T\fP [lib.iostreams.pos.t]
27.2 Forward declarations [lib.iostream.forward]
27.3 Standard iostream objects [lib.iostream.objects]
27.3.1 Narrow stream objects [lib.narrow.stream.objects]
27.3.1.1 Object cin [lib.cin]
27.3.1.2 Object cout [lib.cout]
27.3.1.3 Object cerr [lib.cerr]
27.3.1.4 Object clog [lib.clog]
27.3.2 Wide stream objects [lib.wide.stream.objects]
27.3.2.1 Object win [lib.win]
27.3.2.2 Object wout [lib.wout]
27.3.2.3 Object werr [lib.werr]
27.3.2.4 Object wlog [lib.wlog]
27.4 Iostreams base classes [lib.iostreams.base]
27.4.1 Types [lib.stream.types]
27.4.1.1 Type streamoff [lib.streamoff]
27.4.1.2 Type wstreamoff [lib.wstreamoff]
27.4.1.3 Type streampos [lib.streampos]
27.4.1.4 Type \f7wstreampos [lib.wstreampos]
27.4.1.5 Type streamsize [lib.streamsize]
27.4.2 Template struct ios_traits [lib.ios.traits]
27.4.2.1 Member functions [lib.ios.traits.members]
27.4.2.1.1 ios_traits::to_char_type [lib.ios.char.traits::to.char.type]
27.4.2.1.2 ios_traits::to_int_type [lib.ios.char.traits::to.int.type]
27.4.2.1.3 ios_traits::eq_char_type [lib.ios.char.traits::eq.char.type]
27.4.2.1.4 ios_traits::eq_int_type [lib.ios.char.traits::eq.int.type]
27.4.2.1.5 ios_traits::eof [lib.ios.char.traits::eof]
27.4.2.1.6 ios_traits::not_eof [lib.ios.char.traits::not.eof]
27.4.2.1.7 ios_traits::is_eof [lib.ios.char.traits::is.eof]
27.4.2.1.8 ios_traits::newline [lib.ios.char.traits::newline]
27.4.2.1.9 ios_traits::is_whitespace [lib.ios.char.traits::is.whitespace]
27.4.2.1.10 ios_traits::eos [lib.ios.char.traits::eos]
27.4.2.1.11 ios_traits::length [lib.ios.char.traits::length]
27.4.2.1.12 ios_traits::copy [lib.ios.char.traits::copy]
27.4.3 Class ios_base [lib.ios.base]
27.4.3.1 Types [lib.ios.types]
27.4.3.1.1 Class ios_base::failure [lib.ios::failure]
27.4.3.1.2 Type ios_base::fmtflags [lib.ios::fmtflags]
27.4.3.1.3 Type ios_base::iostate [lib.ios::iostate]
27.4.3.1.4 Type ios_base::openmode [lib.ios::openmode]
27.4.3.1.5 Type ios_base::seekdir [lib.ios::seekdir]
27.4.3.1.6 Class ios_base::Init [lib.ios::Init]
27.4.3.2 Member functions [lib.ios.members]
27.4.3.2.1 ios_base::operator bool [lib.ios::operator.bool]
27.4.3.2.2 ios_base::operator! [lib.ios::operator!]
27.4.3.2.3 ios_base::copyfmt [lib.ios::copyfmt]
27.4.3.2.4 ios_base::rdstate [lib.ios::rdstate]
27.4.3.2.5 ios_base::clear(iostate) [lib.ios::clear.basic.ios]
27.4.3.2.6 ios_base::setstate(iostate) [lib.ios::setstate.basic.ios]
27.4.3.2.7 ios_base::good [lib.ios::good]
27.4.3.2.8 ios_base::eof [lib.ios::eof]
27.4.3.2.9 ios_base::fail [lib.ios::fail]
27.4.3.2.10 ios_base::bad [lib.ios::bad]
27.4.3.2.11 ios_base::exceptions [lib.ios::exceptions]
27.4.3.2.12 ios_base::flags [lib.ios::flags]
27.4.3.2.13 ios_base::setf(fmtflags) [lib.ios::setf]
27.4.3.2.14 ios_base::unsetf(fmtflags) [lib.ios::unsetf]
27.4.3.2.15 basic_ios::fill [lib.ios::fill]
27.4.3.2.16 ios_base::precision [lib.ios::precision]
27.4.3.2.17 ios_base::width [lib.ios::width]
27.4.3.2.18 ios_base::imbue [lib.ios::imbue]
27.4.3.2.19 ios_base::getloc [lib.ios::getloc]
27.4.3.2.20 ios_base::xalloc [lib.ios::xalloc]
27.4.3.2.21 ios_base::iword [lib.ios::iword]
27.4.3.2.22 ios_base::pword [lib.ios::pword]
27.4.3.2.23 ios_base constructor [lib.ios.base.cons]
27.4.3.2.24 ios_base::init [lib.ios.base::init]
27.4.4 Template class basic_ios [lib.ios]
27.4.4.1 basic_ios constructors [lib.basic.ios.sb.cons]
27.4.4.2 Member functions [lib.basic.ios.members]
27.4.4.2.1 basic_ios::tie [lib.ios::tie]
27.4.4.2.2 basic_ios::rdbuf [lib.ios::rdbuf]
27.4.5 ios_base manipulators [lib.std.ios.manip]
27.4.5.1 fmtflags manipulators [lib.fmtflags.manip]
27.4.5.2 adjustfield manipulators [lib.adjustfield.manip]
27.4.5.3 basefield manipulators [lib.basefield.manip]
27.4.5.4 floatfield manipulators [lib.floatfield.manip]
27.5 Stream buffers [lib.stream.buffers]
27.5.1 Stream buffer requirements [lib.streambuf.reqts]
27.5.2 Template class basic_streambuf<charT,traits> [lib.streambuf]
27.5.2.1 basic_streambuf constructors [lib.basic.streambuf.cons]
27.5.2.2 Member functions [lib.streambuf.members]
27.5.2.2.1 basic_streambuf::pubseekoff [lib.streambuf::pubseekoff]
27.5.2.2.2 basic_streambuf::pubseekpos [lib.streambuf::pubseekpos]
27.5.2.2.3 basic_streambuf::pubsetbuf [lib.streambuf::pubsetbuf]
27.5.2.2.4 basic_streambuf::in_avail [lib.streambuf::in.avail]
27.5.2.2.5 basic_streambuf::pubsync [lib.streambuf::pubsync]
27.5.2.2.6 basic_streambuf::sbumpc [lib.streambuf::sbumpc]
27.5.2.2.7 basic_streambuf::sgetc [lib.streambuf::sgetc]
27.5.2.2.8 basic_streambuf::sgetn [lib.streambuf::sgetn]
27.5.2.2.9 basic_streambuf::snextc [lib.streambuf::snextc]
27.5.2.2.10 basic_streambuf::sputbackc [lib.streambuf::sputbackc]
27.5.2.2.11 basic_streambuf::sungetc [lib.streambuf::sungetc]
27.5.2.2.12 basic_streambuf::sputc [lib.streambuf::sputc]
27.5.2.2.13 basic_streambuf::sputn [lib.streambuf::sputn]
27.5.2.2.14 basic_streambuf::eback [lib.streambuf::eback]
27.5.2.2.15 basic_streambuf::gptr [lib.streambuf::gptr]
27.5.2.2.16 basic_streambuf::egptr [lib.streambuf::egptr]
27.5.2.2.17 basic_streambuf::gbump [lib.streambuf::gbump]
27.5.2.2.18 basic_streambuf::setg [lib.streambuf::setg]
27.5.2.2.19 basic_streambuf::pbase [lib.streambuf::pbase]
27.5.2.2.20 basic_streambuf::pptr [lib.streambuf::pptr]
27.5.2.2.21 basic_streambuf::epptr [lib.streambuf::epptr]
27.5.2.2.22 basic_streambuf::pbump [lib.streambuf::pbump]
27.5.2.2.23 basic_streambuf::setp [lib.streambuf::setp]
27.5.2.2.24 basic_streambuf::overflow [lib.streambuf::overflow]
27.5.2.2.25 basic_streambuf::pbackfail [lib.streambuf::pbackfail]
27.5.2.2.26 basic_streambuf::showmany\u\s814)\d [lib.streambuf::showmany]
27.5.2.2.27 basic_streambuf::underflow [lib.streambuf::underflow]
27.5.2.2.28 basic_streambuf::uflow [lib.streambuf::uflow]
27.5.2.2.29 basic_streambuf::xsgetn [lib.streambuf::xsgetn]
27.5.2.2.30 basic_streambuf::xsputn [lib.streambuf::xsputn]
27.5.2.2.31 basic_streambuf::seekoff [lib.streambuf::seekoff]
27.5.2.2.32 basic_streambuf::seekpos [lib.streambuf::seekpos]
27.5.2.2.33 basic_streambuf::setbuf [lib.streambuf::setbuf]
27.5.2.2.34 basic_streambuf::sync [lib.streambuf::sync]
27.6 Formatting and manipulators [lib.iostream.format]
27.6.1 Input streams [lib.input.streams]
27.6.1.1 Template class basic_istream [lib.istream]
27.6.1.2 basic_istream constructors [lib.basic.istream.cons]
27.6.1.3 Member functions [lib.istream.members]
27.6.1.3.1 basic_istream::ipfx [lib.istream::ipfx]
27.6.1.3.2 basic_istream::isfx [lib.istream::isfx]
27.6.1.3.3 basic_istream::sync [lib.istream::sync]
27.6.1.4 Formatted input functions [lib.istream.formatted]
27.6.1.4.1 Common requirements [lib.istream.formatted.reqmts]
27.6.1.4.2 basic_istream::operator>> [lib.istream::extractors]
27.6.1.5 Unformatted input functions [lib.istream.unformatted]
27.6.1.5.1 basic_istream::get [lib.istream::get]
27.6.1.5.2 basic_istream::getline [lib.istream::getline]
27.6.1.5.3 basic_istream::ignore [lib.istream::ignore]
27.6.1.5.4 basic_istream::read [lib.istream::read]
27.6.1.5.5 basic_istream::readsome [lib.istream::readsome]
27.6.1.5.6 basic_istream::peek [lib.istream::peek]
27.6.1.5.7 basic_istream::putback [lib.istream::putback]
27.6.1.5.8 basic_istream::unget [lib.istream::unget]
27.6.1.5.9 basic_istream::gcount [lib.istream::gcount]
27.6.1.6 Standard basic_istream manipulators [lib.basic.istream.manip]
27.6.2 Output streams [lib.output.streams]
27.6.2.1 Template class basic_ostream [lib.ostream]
27.6.2.2 basic_ostream constructors [lib.basic.ostream.sb.cons]
27.6.2.3 Member functions [lib.basic.ostream.members]
27.6.2.3.1 basic_ostream::opfx [lib.ostream::opfx]
27.6.2.3.2 basic_ostream::osfx [lib.ostream::osfx]
27.6.2.3.3 basic_ostream::flush [lib.ostream::flush]
27.6.2.4 Formatted output functions [lib.ostream.formatted]
27.6.2.4.1 Common requirements [lib.ostream.formatted.reqmts]
27.6.2.4.2 basic_ostream::operator<< [lib.ostream.inserters]
27.6.2.5 Unformatted output functions [lib.ostream.unformatted]
27.6.2.5.1 basic_ostream::put [lib.ostream::put]
27.6.2.5.2 basic_ostream::write [lib.ostream::write]
27.6.2.6 Standard basic_ostream manipulators [lib.basic.ostream.manip]
27.6.2.6.1 endl [lib.endl]
27.6.2.6.2 ends [lib.ends]
27.6.2.6.3 flush [lib.flush]
27.6.3 Standard manipulators [lib.std.manip]
27.6.3.1 Type smanip [lib.smanip]
27.6.3.2 resetiosflags [lib.resetiosflags]
27.6.3.3 setiosflags [lib.setiosflags]
27.6.3.4 setbase [lib.setbase]
27.6.3.5 setfill [lib.setfill]
27.6.3.6 setprecision [lib.setprecision]
27.6.3.7 setw [lib.setw]
27.7 String-based streams [lib.string.streams]
27.7.1 Template class basic_stringbuf [lib.stringbuf]
27.7.1.1 basic_stringbuf constructors [lib.basic.stringbuf.cons]
27.7.1.2 Member functions [lib.stringbuf.members]
27.7.1.2.1 basic_stringbuf::str [lib.stringbuf::str]
27.7.1.2.2 basic_stringbuf::overflow [lib.stringbuf::overflow]
27.7.1.2.3 basic_stringbuf::pbackfail [lib.stringbuf::pbackfail]
27.7.1.2.4 basic_stringbuf::underflow [lib.stringbuf::underflow]
27.7.1.2.5 basic_stringbuf::seekoff [lib.stringbuf::seekoff]
27.7.1.2.6 basic_stringbuf::seekpos [lib.stringbuf::seekpos]
27.7.1.2.7 basic_stringbuf::setbuf [lib.stringbuf::setbuf]
27.7.2 Template class basic_istringstream [lib.istringstream]
27.7.2.1 basic_istringstream constructors [lib.basic.istringstream.m.cons]
27.7.2.2 Member functions [lib.istringstream.members]
27.7.2.2.1 basic_istringstream::rdbuf [lib.istringstream::rdbuf]
27.7.2.2.2 basic_istringstream::str [lib.istringstream::str]
27.7.2.3 Class basic_ostringstream [lib.ostringstream]
27.7.2.4 basic_ostringstream constructors [lib.basic.ostringstream.cons]
27.7.2.5 Member functions [lib.ostringstream.members]
27.7.2.5.1 basic_ostringstream::rdbuf [lib.ostringstream::rdbuf]
27.7.2.5.2 basic_ostringstream::str [lib.ostringstream::str]
27.8 File-based streams [lib.file.streams]
27.8.1 Multi-byte conversions [lib.conv.fstreams]
27.8.1.1 Template class conv_traits [lib.conv.traits]
27.8.1.2 Template class ios_conv_traits [lib.ios.conv.traits]
27.8.1.2.1 Struct ios_conv_traits<STATE_T> [lib.ios.conv.traits.state.t]
27.8.1.2.2 Struct ios_conv_traits<wstreampos> [lib.ios.conv.traits.wstreampos]
27.8.1.3 Template class basic_convbuf [lib.basic.convbuf]
27.8.1.3.1 basic_convbuf constructor [lib.basic.convbuf.cons]
27.8.1.3.2 basic_convbuf destructor [lib.basic.convbuf.des]
27.8.1.3.3 basic_convbuf::overflow [lib.basic.convbuf.overflow]
27.8.1.3.4 basic_convbuf::pbackfail [lib.basic.convbuf::pbackfail]
27.8.1.3.5 basic_convbuf::underflow [lib.basic.convbuf::underflow]
27.8.1.3.6 basic_convbuf::seekoff [lib.convbuf::seekoff]
27.8.1.3.7 basic_convbuf::seekpos [lib.convbuf::seekpos]
27.8.1.3.8 basic_convbuf::setbuf [lib.convbuf::setbuf]
27.8.1.3.9 basic_convbuf::sync [lib.convbuf::sync]
27.8.1.4 Examples of trait specialization [lib.examples.traits]
27.8.2 File streams [lib.fstreams]
27.8.2.1 Template class basic_filebuf [lib.filebuf]
27.8.2.2 basic_filebuf constructors [lib.basic.filebuf.cons]
27.8.2.3 Member functions [lib.filebuf.members]
27.8.2.3.1 basic_filebuf::is_open [lib.filebuf::is.open]
27.8.2.3.2 basic_filebuf::open [lib.filebuf::open]
27.8.2.3.3 basic_filebuf::close [lib.filebuf::close]
27.8.2.3.4 basic_filebuf::overflow [lib.filebuf::overflow]
27.8.2.3.5 basic_filebuf::pbackfail [lib.filebuf::pbackfail]
27.8.2.3.6 basic_filebuf::showmany [lib.filebuf::showmany]
27.8.2.3.7 basic_filebuf::underflow [lib.filebuf::underflow]
27.8.2.3.8 basic_filebuf::seekoff [lib.filebuf::seekoff]
27.8.2.3.9 basic_filebuf::seekpos [lib.filebuf::seekpos]
27.8.2.3.10 basic_filebuf::setbuf [lib.filebuf::setbuf]
27.8.2.3.11 basic_filebuf::sync [lib.filebuf::sync]
27.8.2.4 Template class basic_ifstream [lib.ifstream]
27.8.2.5 basic_ifstream constructors [lib.basic.ifstream.cons]
27.8.2.6 Member functions [lib.ifstream.members]
27.8.2.6.1 basic_ifstream::rdbuf [lib.ifstream::rdbuf]
27.8.2.6.2 basic_ifstream::is_open [lib.ifstream::is.open]
27.8.2.6.3 basic_ifstream::open [lib.ifstream::open]
27.8.2.6.4 basic_ifstream::close [lib.ifstream::close]
27.8.2.7 Template class basic_ofstream [lib.ofstream]
27.8.2.8 basic_ofstream constructors [lib.basic.ofstream.cons]
27.8.2.9 Member functions [lib.ofstream.members]
27.8.2.9.1 basic_ofstream::rdbuf [lib.ofstream::rdbuf]
27.8.2.9.2 basic_ofstream::is_open [lib.ofstream::is.open]
27.8.2.9.3 basic_ofstream::open [lib.ofstream::open]
27.8.2.9.4 basic_ofstream::close [lib.ofstream::close]
27.8.3 C Library files [lib.c.files]
A Grammar summary [gram]
A.1 Keywords [gram.key]
A.2 Lexical conventions [gram.lex]
A.3 Basic concepts [gram.basic]
A.4 Expressions [gram.expr]
A.5 Statements [gram.stmt.stmt]
A.6 Declarations [gram.dcl.dcl]
A.7 Declarators [gram.dcl.decl]
A.8 Classes [gram.class]
A.9 Derived classes [gram.class.derived]
A.10 Special member functions [gram.special]
A.11 Overloading [gram.over]
A.12 Templates [gram.temp]
A.13 Exception handling [gram.except]
B Implementation quantities [limits]
C Compatibility [diff]
C.1 Extensions [diff.c]
C.1.1 C++ features available in 1985 [diff.early]
C.1.2 C++ features added since 1985 [diff.c++]
C.2 C++ and ISO C [diff.iso]
C.2.1 Clause _lex_: lexical conventions [diff.lex]
C.2.2 Clause _basic_: basic concepts [diff.basic]
C.2.3 Clause _expr_: expressions [diff.expr]
C.2.4 Clause _stmt.stmt_: statements [diff.stat]
C.2.5 Clause _dcl.dcl_: declarations [diff.dcl]
C.2.6 Clause _dcl.decl_: declarators [diff.decl]
C.2.7 Clause _class_: classes [diff.class]
C.2.8 Clause _cpp_: preprocessing directives [diff.cpp]
C.3 Anachronisms [diff.anac]
C.3.1 Old style function definitions [diff.fct.def]
C.3.2 Old style base class initializer [diff.base.init]
C.3.3 Assignment to this [diff.this]
C.3.4 Cast of bound pointer [diff.bound]
C.3.5 Nonnested classes [diff.class.nonnested]
C.4 Standard C library [diff.library]
C.4.1 Modifications to headers [diff.mods.to.headers]
C.4.2 Modifications to definitions [diff.mods.to.definitions]
C.4.2.1 Type wchar_t [diff.wchar.t]
C.4.2.2 Header <iso646.h> [diff.header.iso646.h]
C.4.2.3 Macro NULL [diff.null]
C.4.3 Modifications to declarations [diff.mods.to.declarations]
C.4.4 Modifications to behavior [diff.mods.to.behavior]
C.4.4.1 Macro offsetof(type, member-designator) <stddef.h> [diff.offsetof]
C.4.5 Names with external linkage [diff.extern.c.names]
D Future directions [future.directions]