
C++ Notes for Professionals
Contents ::
================
Chapter 1: Getting started with C++
Chapter 2: Literals
Chapter 3: operator precedence
Chapter 4: Floating Point Arithmetic
Chapter 5: Bit Operators
Chapter 6: Bit Manipulation
Chapter 7: Bit fields
Chapter 8: Arrays
Chapter 9: Iterators
Chapter 10: Basic input/output in c++
Chapter 11: Loops
Chapter 12: File I/O
Chapter 13: C++ Streams
Chapter 14: Stream manipulators
Chapter 15: Flow Control
Chapter 16: Metaprogramming
Chapter 17: const keyword
Chapter 18: mutable keyword
Chapter 19: Friend keyword
Chapter 20: Type Keywords
Chapter 21: Basic Type Keywords
Chapter 22: Variable Declaration Keywords
Chapter 23: Keywords
Chapter 24: Returning several values from a function
Chapter 25: Polymorphism
Chapter 26: References
Chapter 28: C++ function "call by value" vs. "call by reference"
Chapter 29: Copying vs Assignment
Chapter 30: Pointers
Chapter 31: Pointers to members
Chapter 32: The This Pointer
Chapter 33: Smart Pointers
Chapter 34: Classes/Structures
Chapter 35: Function Overloading
Chapter 36: Operator Overloading
Chapter 37: Function Template Overloading
Chapter 38: Virtual Member Functions
Chapter 39: Inline functions
Chapter 40: Special Member Functions
Chapter 41: Non-Static Member Functions
Chapter 42: Constant class member functions
Chapter 43: C++ Containers
Chapter 44: Namespaces
Chapter 45: Header Files
Chapter 46: Using declaration
Chapter 47: std::string
Chapter 48: std::array
Chapter 49: std::vector
Chapter 50: std::map
Chapter 51: std::optional
Chapter 52: std::function: To wrap any element that is callable
Chapter 53: std::forward_list
Chapter 54: std::pair
Chapter 55: std::atomics
Chapter 56: std::variant
Chapter 57: std::iomanip
Chapter 58: std::any
Chapter 59: std::set and std::multiset
Chapter 60: std::integer_sequence
Chapter 61: Using std::unordered_map
Chapter 62: Standard Library Algorithms
Chapter 63: The ISO C++ Standard
Chapter 64: Inline variables
Chapter 65: Random number generation
Chapter 66: Date and time using <chrono> header
Chapter 67: Sorting
Chapter 68: Enumeration
Chapter 69: Iteration
Chapter 70: Regular expressions
Chapter 71: Implementation-defined behavior
Chapter 72: Exceptions
Chapter 73: Lambdas
Chapter 74: Value Categories
Chapter 75: Preprocessor
Chapter 76: Data Structures in C++
Chapter 77: Templates
Chapter 78: Expression templates
Chapter 79: Curiously Recurring Template Pattern (CRTP)
Chapter 80: Threading
Chapter 81: Thread synchronization structures
Chapter 82: The Rule of Three, Five, And Zero
Chapter 83: RAII: Resource Acquisition Is Initialization
Chapter 84: RTTI: Run-Time Type Information
Chapter 85: Mutexes
Chapter 86: Recursive Mutex
Chapter 87: Semaphore
Chapter 88: Futures and Promises
Chapter 89: Atomic Types
Chapter 90: Type Erasure
Chapter 91: Explicit type conversions
Chapter 92: Unnamed types
Chapter 93: Type Traits
Chapter 94: Return Type Covariance
Chapter 95: Layout of object types
Chapter 96: Type Inference
Chapter 97: Typedef and type aliases
Chapter 98: type deduction
Chapter 99: Trailing return type
Chapter 100: Alignment
Chapter 101: Perfect Forwarding
Chapter 102: decltype
Chapter 103: SFINAE (Substitution Failure Is Not An Error)
Chapter 104: Undefined Behavior
Chapter 105: Overload resolution
Chapter 106: Move Semantics
Chapter 107: Pimpl Idiom
Chapter 108: auto
Chapter 109: Copy Elision
Chapter 110: Fold Expressions
Chapter 111: Unions
Chapter 112: Design pattern implementation in C++
Chapter 113: Singleton Design Pattern
Chapter 114: User-Defined Literals
Chapter 115: Memory management
Chapter 116: C++11 Memory Model
Chapter 117: Scopes
Chapter 118: static_assert
Chapter 119: constexpr
Chapter 120: One Definition Rule (ODR)
Chapter 121: Unspecified behavior
Chapter 122: Argument Dependent Name Lookup
Chapter 123: Attributes
Chapter 124: Recursion in C++
Chapter 125: Arithmitic Metaprogramming
Chapter 126: Callable Objects
Chapter 127: Client server examples
Chapter 128: Const Correctness
Chapter 129: Parameter packs
Chapter 130: Build Systems
Chapter 131: Concurrency With OpenMP
Chapter 132: Resource Management
Chapter 133: Storage class specifiers
Chapter 134: Linkage specifications
Chapter 135: Digit separators
Chapter 136: C incompatibilities
Chapter 137: Side by Side Comparisons of classic C++ examples
Chapter 138: Compiling and Building
Chapter 139: Common compile/linker errors (GCC)
Chapter 140: More undefined behaviors in C++
Chapter 141: Unit Testing in C++
Chapter 142: C++ Debugging and Debug-prevention Tools & Techniques
Chapter 143: Optimization in C++
Chapter 144: Optimization
Chapter 145: Profiling
Chapter 146: Refactoring Techniques