This index is still under construction. Chapters have been indexed up to lesson: 24
Items in the standard library (e.g. std::cout) are indexed without the std:: prefix.
If you find any errors, please report them here.
- 0 -
- 0, 1, 2 Test, 9.2
- A -
- ASCII, 4.11
- Abort, 8.12
- Access controls, 14.5
- Access function, see Function, Access
- Access level, 14.5
- Access specifier, 14.5
- Actual parameter, see Function, Argument
- Address, see Memory, Address
- Aggregate, see Type, Aggregate
- Aggregate class, 23.3
- Aggregation, 23.3
- Algorithm, 8.13, 18.3, 21.4
- Last In, First Out (LIFO), 16.11
- Alias template, see Template, Alias
- Anonymous object, see Object, Anonymous
- Application, 0.2
- Argc, 20.4
- Argument, see Function, Argument
- Argv, 20.4
- Array (C-style), 17.7
- Aggregate initialization, 17.7
- Column-major order, 17.12
- Const, 17.7
- Constexpr, 17.7
- Decay into pointer, 17.8
- Declaration Syntax, 17.7
- Dynamic, 17.7, 19.2, 19.4
- Fixed, 17.7
- Indexing, 17.7
- Length, 17.7
- Multidimensional, 17.12, 19.4
- Omitted length, 17.7
- Range, 17.7
- Row-major order, 17.12
- Size, 17.7
- Sizeof, 17.7
- Sorting, 18.1
- Ssize, 17.7
- Subscripting, 17.7
- Array (general), 16.1
- Also see Container
- Bounds checking, 16.2
- Contiguous, 16.1
- Dimension, 17.12
- Dynamic, 16.10
- Element, see Container, Element
- Fixed-length, 16.10
- Fixed-size, 16.10
- Flattening, 17.13
- Index, 16.2
- Indexing with enumerators, 16.9
- Iteration, see Loop, Iteration
- Loops, 16.6
- Multidimensional, 17.12, 17.13
- Off-by-one error, see Off-by-one error
- Random access, 16.2
- Resizable, 16.10
- Subscript, 16.2
- Subscript operator, see Operator, Subscript ([])
- Zero-based, 16.2
- Array (standard library), 17.1
- Aggregate initialization, 17.1
- Also see Containers (standard library)
- At, 17.2
- Brace elision, 17.4
- Const, 17.1
- Constexpr, 17.1
- Enumerator indices, 17.6
- Get, 17.2
- Indexing, 17.1, 17.2
- Multidimensional, 17.13
- Of class types, 17.4
- Of references, 17.5
- Passing, 17.3
- Returning, 17.3
- Size, 17.1, 17.2
- Size, 17.1, 17.2
- Size_t, 17.2
- Ssize, 17.2
- Subscripting, 17.1, 17.2
- To_array, 17.1
- As-if rule, 5.4, 14.15
- Assembler, 0.2
- Assembly language, see Language, Assembly
- Assert, 9.6
- Assertion, 9.6
- Assignment, see Variable, Assignment
- Association, 23.4
- Reflexive, 23.4
- Atexit, 8.12
- Attribute, 8.6
- Fallthrough, 8.6
- Auto, 10.8
- Abbreviated function template, see Template, Abbreviated function template
- Duration, see Duration, Automatic
- Trailing return syntax, see Function, Trailing return syntax
- Type deduction, see Type deduction
- Type inference, see Type inference
- B -
- Basic types, see Type, Fundamental
- Begin, 18.2
- Binary, 5.2
- Conversion to decimal, O.4
- Literal, see Literal, Binary
- Numbers, 5.2
- Two's complement, O.4
- Bit
- Bit (binary digit), 0.2, 4.1
- Bitset, O.3
- Bitwise operators, see Operators, Bitwise
- Block, see Compound statement
- Boolean, 4.9
- Bool, 4.9
- Bottom up, 2.13
- Branch coverage, see Coverage, Branch
- Branching, 8.1
- Break, 8.5, 8.11, 8.6
- Buffer, 9.5
- Bug, 0.4
- Build, 0.5
- Build configuration, 0.9
- Build target, see Build configuration
- Building, 0.5
- Built-in types, see Type, Fundamental
- Byte, 4.1
- C -
- C language, 0.3
- C++ language, 0.3
- C-style strings, see String, C-style
- Cache, 0.7
- Call stack, see Stack
- Case label, see Switch, Case label
- Casting, see Type conversion, Casting
- Casts, see Type conversion, Casts
- Cerr, 3.4, 9.4
- Char, see Integer, Char
- Chrono, 8.14, 18.4
- Cin, 1.5
- Class, 14.2
- Base, 24.2
- Child, 24.2
- Const, 14.4
- Const member functions, 14.4
- Constructor, see Constructor
- Container, see Container, Class
- Derived, 24.2
- Destructor, see Destructor
- Enum, 13.6
- Friend, 15.8
- In header files, 15.2
- Instance, 1.3
- Instantiation, 1.3
- Member, see Member
- Parent, 24.2
- Sub, 24.2
- Super, 24.2
- Template, see Template, Class
- This pointer, see Pointer, This
- Vs struct, 14.5
- Class type, 12.1, 13.6, 13.7
- Clog, 3.5
- Code, see Source Code
- Code coverage, see Coverage, code
- Command line arguments, 20.4
- Comment, 1.2
- Commenting out code, 1.2
- Comparisons, see Operators, Comparison
- Compile-time, 1.3, 5.5
- Compiler, 0.2, 0.5
- Common problems, 0.8
- Compiling, 0.7
- Error, 0.11
- Extensions, 0.10
- Multiple files, 2.8
- Warning, 0.11
- Web-based, 0.6
- Composite type, see Type, Composite
- Composition, 23.2
- Compound statement, 4.10, 7.1
- Compound type, see Type, Compound
- Conditional (expression), 4.10, 8.2
- Conditional compilation, see Preprocessor, Conditional compilation
- Conditional operator, see Operators, Conditional (?:)
- Console, 0.7
- Console project, 0.7
- Const, see Constants, Const
- Constant, 5.1, 7.10, 5.5
- Class, see Class, Const
- Compile-time, 5.5
- Const variable, see Variable, Const
- Consteval function, see Function, Consteval
- Constexpr function, see Function, Constexpr
- Constexpr variable, see Variable, Constexpr
- Expression, see Expression, Constant
- Folding, 5.6
- Low-level, 12.14
- Member function, see Member, Const function
- Reference, see Reference, Const
- Runtime, 5.5
- Symbolic constant, 5.1, 7.10
- Top-level, 12.14
- Constexpr, see Constants, Constexpr
- Constexpr if, see If, Constexpr
- Constraints, 3.10, 9.6
- Constructor, 14.9
- Chaining, 14.12
- Converting, 14.16
- Copy, 14.14
- Default, 14.11
- Default arguments, 14.11, 14.12
- Delegating, 14.12
- Implicit copy, 14.14
- Implicit default, 14.11
- List, 16.2
- Member initializer list, see Member, Initializer list
- None, 14.9
- Overlapping, 14.12
- Overloaded, 14.11
- Container (general), 16.1, 23.6
- Class, 16.1, 23.6
- Count, 16.1
- Elements, 16.1
- Heterogenous, 16.1
- Homogenous, 16.1
- Length, 16.1
- Reference, 23.6
- Size, 16.1
- Value, 23.6
- Containers (standard library), 16.1
- Continue, 8.11
- Control flow, see Statement, Control flow
- Conversion, see Type conversion
- Copy
- Assignment, see Variable, Copy assignment
- Constructor, see Constructor, copy
- Deep, 21.13
- Elision, 14.14
- Initialization, see Initialization, Copy initialization
- Preventing, 14.14
- Semantics, 16.4
- Shallow, 21.13
- Cout, 1.5
- Coverage, 9.2
- D -
- DRY (Don't repeat yourself), 2.2
- Data, 1.3
- Data structure, 20.2
- Data types, see Type
- De Morgan's laws, 6.8
- Debug, 0.4
- Debugger, 3.6
- Breakpoint, 3.7
- Call stack, 3.9
- Continue, 3.7
- Integrated, 3.6
- Jump, 3.7
- Run to cursor, 3.7
- Set next, 3.7
- Start, 3.7
- Stepping, Step into, Step over, Step out, 3.6
- Watch, 3.8
- Debugging
- Code inspection, 3.3
- Commenting out code, 3.4
- Conditionalizing code, 3.5
- Printing values, 3.4
- Process, 3.2
- Reproduction steps, 3.2
- Validating flow, 3.4
- Decimal numbers, see Literal, Decimal
- Conversion to binary, O.4
- Declaration, 2.7
- Decltype, 16.7
- Default
- Argument, 11.5, 15.2
- Label, see Switch, Default label
- Parameter, see Function, Default parameter
- Specifer, 11.4
- Defensive programming, 3.10, 9.4
- Definition, 1.3, 2.7
- One definition rule (ODR), 2.7, 7.9, 15.2
- Type, see Type, Definition
- vs declaration, 2.7
- Delete
- Function, 14.16
- Operator, see Operators, Delete
- Specifier, 11.4
- Dependency, 23.5
- Derivation, see Inheritance
- Destructor, 15.4, 19.3
- Development steps, 0.4
- Diagnostic, 0.11
- Directive, see Preprocessor, Directive
- Division,
- By zero, 6.2
- Floating ooint, see Floating point, Division
- Integer, see Integer, Division
- Do while, 8.9
- Duration, see Storage duration
- Dynamic allocation, 19.1
- Delete, see Operators, Delete
- Delete[], see Operators, Delete[]
- New, see Operators, New
- E -
- Ellipses (...), 20.5
- Else, 4.10, 8.2, 8.3
- Dangling else, 8.3
- Encapsulation, 14.8
- End, 18.2
- Endl, 1.5
- vs , 1.5
- Enum, see Enumerations
- Enumerations, 13.2
- Base, 13.3
- Enum classes, 13.6
- Enumerators, see Enumerators
- Iterating, 17.6
- Printing, 13.3, 17.6
- Scoped, 13.6
- Size, 13.3
- Underlying type, 13.3
- Unscoped, 13.2
- Using, 13.6
- Enumerators, 13.2
- Error, 0.11
- Diagnostic, see Diagnostic, Error
- Fatal, 9.4
- Handling, 9.4
- Logic, 3.1, 9.4
- Non-recoverable, 9.4
- Semantic, 3.1, 9.4, 9.3
- Syntax, 1.1, 3.1, 9.4
- Violated assumption, 9.4
- Escape sequence, 4.11
- Evaluation
- Expression, see Expression, Evaluation
- Operands, 6.1
- Order of, 6.1
- Evil
- Global variables, see Variable, Global
- Unsigned integers, see Integer, Unsigned
- Execute, see Run
- Execution path, see Path, Execution
- Exit, 8.12, 9.4
- Exit code, see Return values, Status code
- Explicit
- Explicit, 14.16, 10.4
- Exponent, see Operator, Exponent
- Expression, 1.10
- Compound, 1.10
- Constant, 5.5
- Evaluation, 1.10, 6.1
- Full, 1.10
- Omitted, 8.10
- Result, 1.10
- Statement, 1.10
- Subexpression, 1.10
- Type, 12.2
- Value category, 12.2
- Extern, 7.7
- F -
- False, 4.9
- Flag, O.1
- Floating point, 4.8
- Division, 6.2
- Double, 4.8
- Float, 4.8
- Inf, 4.8
- Long double, 4.8
- NaN, 4.8
- Precision, 4.5, 4.8
- Range, 4.8
- Rounding errors, 4.8
- Significant digits, 4.5, 4.8
- Sizes, 4.8
- Flow control, see Statement, Flow control
- For, 8.10, 16.8
- For-each loop, see Loop, For-each
- Formal parameter, see Function, Parameter
- Formatting, 1.8
- Friend
- Class, see Class, Friend
- Declaration, 15.8
- Function, see Function, Friend
- Member function, see Member, Friend function
- Non-member function, see Function, Friend
- Function, 1.1, 2.1
- Access, 14.6
- Accessor, 14.6
- Ambiguous match, 11.3
- Argument, 2.4
- Argument order of evaluation, 2.4
- Body, 2.1, 2.7
- Call, 2.1
- Callback, 20.1
- Called/Callee/Caller, 2.1
- Chaining, 15.1
- Consteval, F.3
- Constexpr, F.1, F.2, F.3, F.4
- Default parameter, 11.5, 20.1
- Free, 14.3
- Friend, 15.8
- Getter, 14.6
- Header, 2.1
- Identifier, see Identifier
- Inline, 7.9
- Instance, see Template, Function instance
- Invocation, 2.1
- Invoke, 2.1
- Main, 1.1, 2.2
- Member, see Member, Function
- Mutator, 14.6
- Name mangling, 11.2
- Naming, 1.7
- Non-member, 14.3
- Object, see Functor
- Optional parameter, 12.11, 11.5
- Overload differentiation, 11.1, 11.2
- Overload resolution, 11.1, 11.3
- Overloading, 11.1
- Parameter, 2.4
- Pass by address, 12.10, 12.11, 17.8
- Pass by reference, 12.5, 12.10, 12.11
- Pass by value, 2.4
- Pointer, 20.1
- Prototype, 2.7
- Pure, F.4
- Recursive, see Recursion, Recursive function
- Return, 2.1
- Return by address, see Return values, Return by address
- Return by reference, see Return values, Return by reference
- Return by value, see Return values, Return by value
- Return values, see Return values
- Setter, 14.6
- Signature, 11.2
- Template, see Template, Function template
- Trailing return syntax, 10.9
- Unnamed parameter, 2.4
- Unreferenced parameter, 2.4
- User-defined, 2.1
- Uses of, 2.6
- Value parameter, 2.4
- Function (standard library), 20.1
- Functor, 21.10
- G -
- H -
- I -
- IDE, see Integrated desktop environment (IDE)
- IO manipulators
- Identifier, 1.1, 1.7
- Qualified, 2.9
- If
- Implementation, 14.8
- Implementation (compiler), 1.6
- Implicit object, see Object, Implicit
- Include, see Preprocessor, Include
- Include guard, 2.12
- Incomplete type, see Type, Incomplete
- Indentation, 1.8
- Information hiding, 14.8
- Inheritance, 24.1, 24.2
- Adding functionality to a derived class, 24.6
- Adding to existing base class functionality, 24.7
- Calling base class function, 24.7
- Changing an inherited member’s access level, 24.8
- Diamond problem, 24.9, 25.8
- Hiding functionality, 24.8
- Initialization of subclasses, 24.4
- Multiple, 24.9
- Order of construction, 24.3
- Private, 24.5
- Protected, 24.5
- Public, 24.5
- Redefining behaviors in a derived class, 24.7
- Initialization, 1.3, 1.4
- Aggregate initialization, 13.8
- Brace initialization, 1.4
- Constant initialization, 7.8
- Copy-initialization, 1.4
- Copy-list-initialization, 1.4
- Default initialization, 1.4
- Default member initialization, 13.9
- Designated initializers, 13.8
- Direct-initialization, 1.4
- Direct-list-initialization, 1.4
- Dynamic initialization, 7.8
- List-initialization, 1.4, 16.2, 11.2
- Memberwise initialization, 13.8
- Non-static member initialization, 13.9
- Reference initialization, 12.3
- Static initialization, 7.8
- Static initialization order problem, 7.8
- Uniform initialization, 1.4
- Value-initialization, 1.4
- Zero-initialization, 1.4, 11.2
- Initializer_list, 13.8
- Initializer_list (standard library), 23.7
- Inline function, see Function, Inline
- Inline variable, see Variable, Inline
- Input validation, 9.5
- Instantiation, see Variable, Instantiation
- Instruction set, 0.2
- Integer, 1.3, 4.4, 4.5
- Avoiding unsigned, 4.5
- Char, 4.11
- Division, 4.4, 6.2
- Fixed-width, 4.6
- Int, 4.4
- Int8_t and uint8_t may behave like chars, 4.6
- Long, 4.4
- Long long, 4.4
- Modulo wrapping, 4.5
- Overflow, 4.4
- Short, 4.4
- Sign, 4.4
- Signed, 4.4
- Sizes, 4.4
- Unsigned, 4.5
- char16_t and char32_t, 4.11
- wchar_t, 4.11
- Integrated desktop environment (IDE), 0.6
- Integration testing, 9.1
- Interface, 14.8
- Public, 14.8
- Interpreter, 0.2
- Invariant, 9.6, 14.2
- Iostream, 1.5
- Iteration, see Loop, Iteration
- Iterator, 18.2, 21.3
- J -
- Jump, 8.1
- L -
- Labels
- Case label, see Switch, Case label
- Default label, see Switch, Default label
- Statement label, see Goto, Statement label
- Lambda, 20.6, 20.7
- Language
- Library, 0.5
- C++ standard, 0.5
- Linkage, 7.4
- Linker, 0.5
- Linting, see Static analysis tools
- List Constructor, see Constructor, List
- List Initialization, see Initialization, List
- Literals, 1.9, 5.2
- Binary, 5.3
- Constant, 5.2
- Decimal, 5.3
- Hexadecimal, 5.3
- Octal, 5.3
- String, 5.7
- String_view, 5.8, 5.9
- Suffixes, 5.2
- Local variable, see Variable, local
- Log file, 3.5
- Logging, 3.5
- Loop, 8.1
- Counter, 8.8
- Do while, see Do while
- For, see For
- For-each, 16.8
- Infinite, 8.8
- Iteration, 8.8, 16.6
- Loop scope, 8.10
- Loop variable, 8.8
- Nested, 8.8, 18.1
- Range-based for, 16.8
- While, see While
- Lvalue, 12.2
- M -
- Machine code, 0.2
- Machine language, 0.2
- Macro, see Preprocessor, Macro
- Magic number, 5.2
- Main, see Function, Main
- Main function, see Function, Main
- Makefile, 0.5
- Mdarray, 17.13
- Mdspan, 17.13
- Member, 13.7, 14.3
- Const function, 14.4
- Const function overload, 14.4
- Friend function, 15.8
- Function, 5.7, 14.3
- Initializer list, 14.10
- Non-static member initialization, 13.7
- Static function, 15.7
- Static variable, 15.6
- Type, 15.3
- Memory
- Method, see Member, Function
- Move semantics, 16.4
- [[Maybe_unused]], 1.4
- N -
- NDebug, 9.6
- Name, see Identifier
- Name
- Dependent, 12.11
- Hiding, see Variable, Shadowing
- Namespace, 2.9, 7.2
- Alias, 7.2
- Anonymous, 7.14
- Global, 2.9, 7.2
- Inline, 7.14
- Nested, 7.2
- Scope, see Scope, Namespace
- Std, 2.9
- Unnamed, 7.14
- User-defined, 7.2
- Naming collision, 2.9, 7.2
- Naming conflict, see Naming collision
- Nesting depth, 7.1
- Nesting level, 7.1
- Newline ( ), 4.11, 1.5
- Non-static member initialization, see Member, Non-static member initialization
- Null, 12.8
- NULL macro, 12.11
- Pointer, see Pointer, Null pointer
- Statement, see Statement, Null statement
- Value, 12.8
- Nullptr, 12.8
- Nullptr_t, 12.11
- Numeral system, 5.3
- O -
- Object, 1.3
- Anonymous, 12.4, 13.10, 14.13
- Composition, see Composition
- File, 0.5
- Identity, 12.2
- Implicit, 14.3
- Lifetime, 2.5
- Object-oriented, 14.1
- Temporary, 2.5, 12.4, 14.13
- Variable, see Variable
- Object-oriented programming, see Programming, object-oriented
- Octal, see Literal, Octal
- Off-by-one error, 8.10
- Operands, 1.9, 6.1
- Operation, 1.9, 6.1
- Operator Overloading, O.2, 21.1, 21.14
- Arithmetic (+, -, *, /), 21.2
- Assignment, 21.12
- Comparison, 21.7
- Decrement (--), 21.8
- Equality (==), 21.7
- I/O, 21.4
- Increment (++), 21.8
- Inequality (!=), 21.7
- Left shift (<<), 21.4
- Minus (+), 21.6
- Not, logical (!), 21.6
- Parenthesis (()), 21.10
- Plus (+), 21.6
- Right shift (<<), 21.4
- Subscript ([]), 21.9
- Typecasts, 21.11
- Using a friend function, 21.2
- Using a member function, 21.5
- Using a normal function, 21.3
- When to use a friend, member, or normal function, 21.5
- Operators, 1.9, 6.1
- Addition (+), 6.2
- Address-of (&), 12.7
- And, bitwise (&), O.2
- And, bitwise assignment (&=), O.2
- And, logical (&&), 6.8
- Arithmetic (+, -, *, /, %), 6.2
- Arithmetic assignment, 6.2
- Assignment (=), 1.4
- Associativity, 6.1
- Binary, 1.9
- Bitwise, O.2
- Bitwise assignment, O.2
- Comma (,), 6.5
- Comparison, 6.7
- Comparison of floating point values, 6.7
- Conditional (?:), 6.6
- Decrement (--), 6.4
- Delete, 19.1
- Delete[], 19.2
- Dereference (*), 12.7
- Division (/), 6.2
- Equality (==), 4.10, 6.7
- Exponent, 6.3
- Extraction (>>), 1.5
- Greater than (>), 6.7
- Greater than equals (>), 6.7
- Increment (++), 6.4
- Indirection (*), 12.7
- Inequality (!=), 6.7
- Input, see Operators, Extraction
- Insertion (<<), 1.5
- Left shift (<<), O.2
- Left shift assignment (<<=), O.2
- Less than (<), 6.7
- Less than equals (<=), 6.7
- Logical, 6.8
- Member selection (.), 13.7, 13.12
- Member selection from pointer (->), 13.12
- Minus (-), 6.2
- Modulus (%), 6.3
- Multiplication, 6.2
- New, 19.1, 19.2
- Not, bitwise (~), O.2
- Not, logical (!), 6.8
- Or, bitwise (|), O.2
- Or, bitwise assignment (|=), O.2
- Or, logical (||), 6.8
- Output, see Operators, Insertion
- Overloading, see Operator Overloading
- Parenthesization, 6.1
- Plus (+), 6.2
- Precedence, 6.1
- Prefix vs postfix, 6.4
- Relational, 6.7
- Right shift (>>), O.2
- Right shift assignment (>>=), O.2
- Scope resolution (::), 2.9, 7.2
- Sizeof, 4.3, 11.2
- Subscript ([]), 17.7, 17.9, 17.13
- Subtraction (-), 6.2
- Ternary, 1.9
- Unary, 1.9
- Xor, bitwise (^), O.2
- Xor, bitwise assignment (^=), O.2
- Optimization
- As-if rule, see As-if rule
- Premature, 2.13
- Output, see Operators, Output
- Overflow, see Integer, Overflow
- Overflow
- Array, 9.4
- Buffer, 9.4
- Integer, see Integer, Overflow
- Overloading, see Function, Overloading
- P -
- PDF version of website, 0.1
- Parameter, see Function, Parameter
- Pass by address, see Function, Pass by addrses
- Pass by reference, see Function, Pass by reference
- Pass by value, see Function, Pass by value
- Path
- Platform, 0.2
- Pointer, 12.7
- Address-of operator, see Operators, Address-of (&)
- Arithmetic, 17.9
- Const, 12.9
- Dangling, 12.7, 19.1, 12.12
- Dereference operator, see Operators, Dereference (*)
- Dereferencing invalid pointers, 12.7
- Function, see Function, Pointer
- Null pointer, 12.8, 19.1
- Pass by address, see Function, Pass by address
- Scaling, 17.9
- Sizeof, 12.7
- This, 15.1
- To a pointer, 19.4
- To const, 12.9
- Void, 19.5
- Wild, 12.7
- Portability, 0.2
- Postcondition, 9.6
- Precision, see Floating point, Precision
- Precompiled headers, disabling in Visual Studio, 0.7, 0.8
- Precondition, 9.6
- Prefix (naming)
- Preprocessor, 2.10
- Conditional compilation, 2.10
- Directive, 2.10
- Ifdef, ifndef, endif, 2.10
- Include, 2.10, 2.11
- Macro, 2.10
- Pragma once, 2.12
- Primitive types, see Type, Fundamental
- Private, see Access specifier, Private
- Program, 0.2
- Programming, 0.2
- Project, see Integrated desktop environment (IDE), Projects
- Public (the), 14.5
- R -
- RAII, see Resource acquisition is initialization
- Random, 8.14, 8.15
- Access, 20.2
- Access memory (RAM), 1.3
- Iniform distribution, 8.14
- Mersenne twister, 8.14
- Mt19937, 8.14
- Number Distribution, 8.14
- PRNG, 8.13
- Period, 8.13
- Pseudo-random, 8.13
- Rand, 8.14
- Seed, 8.13
- Underseeded, 8.13
- Random.h, 8.15
- Random_device, 8.14
- Range (array), see Array, Range
- Range (object), 4.4
- Range-based for loop, see Loop, For-each
- Recursion, 20.3
- Ref-qualifier, 15.10
- Refactoring, 3.10
- Reference, 12.3
- Binding, 12.3
- Const, 12.4
- Dangling, 12.3, 12.12
- Lvalue, 12.3
- Parameters, see Function, Pass by reference
- Pass by, see Function, Pass by reference
- Referent, 12.3
- Reseating, 12.3
- Return by, see Function, Return by reference
- Rvalue lifetime extension, 12.4
- Shortcuts, 12.3
- To const, 12.4
- To non-const, 12.3
- Variable, 12.3
- Reference_wrapper, 17.5, 23.3
- Relationship, 23.1
- Aggregation, see Aggregation
- Association, see Association
- Bidirectional, 23.4
- Composition, see Composition
- Dependency, see Dependency
- Unidirectional, 23.2
- Resource acquisition is initialization, 19.3
- Result, see Expression, Result
- Return address, 20.2
- Return code, see Return values, Status code
- Return statement, 2.2, 2.3
- Return type, 2.2
- Void, see Void, Return type
- Return values, 1.9, 2.2, 12.12
- From main, 2.2
- Return by address, 12.12
- Return by reference, 12.12, 14.7
- Return by value, 2.2, 12.12
- Returning multiple values (by struct), 13.10
- Status code, 2.2
- Robustness, 9.5
- Run, 0.2
- Runtime, 1.3, 5.5
- Rvalue, 12.2
- Lifetime extension by reference, see Reference, R-value lifetime extension
- S -
- Scientific notation, 4.7
- Scope, 2.5, 2.9, 7.3
- Block scope, 7.3
- File scope, 7.4
- Function scope, 8.7
- Global scope, 2.9, 7.4
- In scope, 2.5
- Local scope, 2.5, 7.3
- Namespace scope, 2.9
- Out of scope, 2.5
- Summary, 7.12
- Seed, see Random, Seed
- Semantic error, see Error, Semantic
- Sentinel value, 9.4, 20.5
- Sequential flow, 8.1
- Shadowing, see Variable, Shadowing
- Short circuit evaluation, 6.8
- Side effect, 1.9, 6.4
- Signed, see Integer, Signed
- Significant digits, see Floating point, Significant digits
- Size, 11.2
- Size_t, 4.6
- Sizeof, see Operator, Sizeof
- Software, 0.2
- Sort (standard library), 18.1, 17.1
- Sorting, 18.1
- Source code, 0.2
- Spaghetti code, 8.7
- Stack (Call), 19.1, 20.2
- Stack (Data Structure), 16.11
- Standard library, see Library, C++ standard
- State, 8.13
- Statement, 1.1
- Break, see Break
- Control flow, 8.1
- Coverage, see Coverage, Statement
- Do, see Do
- Else, see Else
- Flow control, 8.1
- For, see For
- Goto, see Goto
- If, see If
- Null statement, 8.3
- Return, see Return statement
- Switch, see Switch
- While, see While
- see Declaration, Definition, Loops, Assignment, etc...
- Static, 7.6, 7.11
- Member, see Member, Static function
- Member, see Member, Static variable
- Static analysis tools, 3.10
- Static_assert, 9.6
- Static_cast, see Type conversion, Static_cast
- Status code, see Return values, Status code
- Storage class specifier, 7.6, 7.12
- Storage duration, 7.3
- String, 4.11
- String (standard library), 5.7
- Constexpr, 5.7
- Input, 5.7
- Length, 5.7
- Literals, see Literals, String
- Output, 5.7
- String, C-style, 17.10
- Also see Array (C-style), 17.10
- Declaration syntax, 17.10
- Initializing, 17.10
- Input, 17.10
- Length, 17.10
- Literal, 5.2
- Modifying, 17.10
- Null terminated, 17.10
- Null terminator, 17.10
- Output, 17.10, 17.11
- Overflow, 17.10
- Size, 17.10
- Ssize, 17.10
- Strlen, 17.10
- Symbolic constant, 17.11
- String_view, 5.8, 5.9
- Struct, 13.7
- Data members, 13.7
- Default member initialization, 13.9
- Initialization, see Initialization, Aggregate
- Member selection from pointer operator, see Operators, Member selection from pointer (->)
- Member selection operator, see Operators, Member selection (.)
- Member variables, 13.7
- Members, 13.7
- Nested structs, 13.10
- Non-static member initialization, 13.9
- Padding and alignment, 13.10
- Size, 13.10
- also see Class
- Structure, see Struct
- Style guide, 1.8
- Switch, 8.5
- Symbolic constant, see Variable, Symbolic constant
- Syntax, 1.1
- Error, see Error, Syntax
- T -
- Template, 11.6
- Abbreviated function template, 11.8
- Alias template, 13.15
- Argument, 11.7
- Argument deduction, 11.7
- Class template, 13.13, 15.5
- Class template argument deduction (CTAD), 13.14
- Deduction guides, 13.14
- Explicit specialization, 26.3
- Full specialization, 26.3
- Function instance, 11.7
- Function template, 11.6, 11.7
- Function template instantiation, 11.7
- Generic programming, 11.7
- Generic type, 11.7
- Implicit instantiation, 11.7
- Injected name, 15.5
- Instantiation, 11.7
- Partial specialization, 26.3
- Primary template, 11.7
- Specialization, 11.7, 26.3
- Template parameter declaration, 11.6
- Template type, 11.6, 11.8
- Termination
- Abnormal, 8.12
- Normal, 8.12
- Recursive, see Recursive, Recursive termination
- This, see Pointer, This
- Timing your code, 18.4
- Top down, 2.13
- Trailing return syntax, see Function, Trailing return syntax
- Transitive include, 2.11
- Translation, 2.10
- Translation unit, 2.10
- True, 4.9
- Tuple (standard library), 12.12
- Two's complement, see Binary, Two's complement
- Type, 1.3, 4.1
- Aggregate, 13.8
- Composite, 12.1
- Compound, 12.1
- Definition, 13.1
- Distinct, 13.2
- Enumerated, see Enumerations
- Fundamental, 4.1
- Incomplete, 4.2
- Member, see Member, Type
- Nested, 15.3
- Program-defined, 13.1
- Range, see Range
- Struct, see Struct
- Template, see Template, Template type
- User-defined, 13.1
- Why types matter, O.4
- Type alias, 10.7, 13.14
- Type conversion, 10.1
- Arithmetic conversions, 10.5
- Automatic, 10.1
- C-style casts, 10.6
- Casting, 4.12, 10.6
- Casts, 4.12, 10.6
- Coercion, 10.1
- Constexpr, 10.4
- Explicit, 10.6, 10.4
- Floating point promotion, 10.2
- Function-style cast, 10.6
- Implicit, 10.1
- Integral promotion, 10.2
- Named casts, 10.6
- Narrowing conversion, 10.4
- Numeric conversion, 10.3
- Numeric promotion, 10.2
- Safe, 10.2, 10.3
- Standard conversions, 10.1
- Static_cast, 4.12, 10.6
- Trivial conversions, 11.3
- Type casting operators, 4.12, 10.6
- Unsafe, 10.3
- User-defined, 14.16
- Usual arithmetic conversions, 10.5
- Value-preserving, 10.2
- Type deduction, 10.8
- Type inference, 10.8
- Typedef, 10.7
- Typedef name, 10.7
- Typeid, 10.5
- Typeinfo, 10.5
- U -
- Undefined behavior, 1.6
- Uninitialized variable, see Variable, Uninitialized
- Unit test, 9.1
- Unit testing, 9.1, 3.10
- Unsigned, see Integer, Unsigned
- Using, 7.13
- Declaration, 7.13
- Directive, 2.9, 7.13
- Enum, see Enum, Using
- V -
- Value, 1.3
- Value computation, 6.1
- Variable, 1.3
- Assignment, 1.4
- Automatic, 7.3
- Const, 5.1, 7.10, 5.5
- Constant, 5.1, 7.10, 5.5
- Constexpr, 5.5, 7.10
- Copy assignment, 1.4
- External, 7.7
- Global, 7.4, 7.8
- Identifier, see Identifier
- Initialization, 1.4
- Inline, 7.10
- Instance, 1.3
- Instantiation, 1.3
- Internal, 7.6
- Lifetime, see Object, Lifetime
- Local, 2.5, 7.3
- Naming, 1.7
- Scope, see Scope
- Shadowing, 7.5
- Static, 7.4, 7.11
- Static local, 7.11
- Type, see Type
- Uninitialized, 1.6
- Variable, see Return type, Void
- Vector (standard library), 16.2
- Also see Containers (standard library)
- At, 16.3
- Back, 16.11
- Capacity, 16.10
- Compacting bools, 16.12
- Emplace_back, 16.11
- Enumerator indices, 16.9
- Indexing, 16.2
- Length, 16.3, 16.10
- List initialization, 16.2
- Passing, 16.4
- Pop_back, 16.11
- Push_back, 16.11
- Reallocation, 16.10
- Reserve, 16.11
- Resize, 16.10, 16.11
- Returning, 16.4
- Shrinking, 16.10
- Size, 16.3
- Size_type, 16.3
- Ssize, 16.3
- Stack behavior, 16.11
- Subscripting, 16.2
- Verification
- Input, see Input validation
- Software, see Software, Verification
- View, 5.9
- Dangling, 5.9
- string_view, see String_view
- Void, 4.2
- Pointer, see Pointer, Void
- Return type, 2.3, 4.2
- W -
- Warning, see Diagnostic, Warning
- While, 8.8
- Whitespace, 1.8
- Ws, 5.7
- Z -
- Zero Initialization, see Initialization, Zero