Language
- K2A-B1-1C++ BasicsSep 14, 2018
A note on the C++ basics — constants, declarations, tokens, storage qualifiers, initialization forms, enums, attributes, and alignment
- K2A-B1-2C++ Compilation Model and LinkageSep 15, 2018
A note on how C++ programs are built — the compilation pipeline, translation units, the One Definition Rule, linkage, headers, the preprocessor, and static vs dynamic linking
- K2A-B1-3C++ Namespaces and Name LookupSep 16, 2018
A note on namespaces, `using` directives and declarations, namespace aliases, argument-dependent lookup (ADL), the hidden friend idiom, and `friend` functions and classes
- K2A-B1-4C++ Strings and TextApr 10, 2020
A note on C-style strings (`char*`), `std::string`, `std::string_view` (C++17), string conversions, and modern formatting (`std::format`, `std::print`)
- K2A-B1-5C++ Reference, Copy, Move and ForwardingSep 27, 2018
A note on the C++ references vs pointers, value categories, copy and move semantics, the special member functions, and perfect forwarding
- K2A-B1-6C++ Memory ManagementSep 27, 2018
A note on the C++ memory management — stack vs heap, `malloc`/`free` vs `new`/`delete`, smart pointers (incl. `weak_ptr`), RAII, copy/move semantics, and polymorphic allocators (PMR)
- K2A-B1-7C++ Error HandlingSep 22, 2018
A note on C++ error handling — exceptions, the standard exception hierarchy, `noexcept`, exception safety guarantees, RAII, `std::expected`, and `std::error_code`
- K2A-B1-8C++ Virtual FunctionsSep 14, 2018
A note on the C++ virtual functions, virtual destructors, and virtual inheritance
- K2A-B1-9C++ Operator OverloadingSep 15, 2018
A note on the C++ operator overloading, function objects, and `std::function`
- K2A-B1-10C++ Casts and RTTISep 25, 2018
A note on the five C++ casts (`static_cast`, `dynamic_cast`, `const_cast`, `reinterpret_cast`, `bit_cast`), the C-style cast and why to avoid it, and runtime type information (`typeid`, `type_info`)
- K2A-B1-11C++ Lambdas, `auto`, and Type DeductionOct 5, 2018
A note on C++ lambdas (captures, mutable, generic, `constexpr`/`consteval`), `auto`/`decltype`/`decltype(auto)`, and CTAD (Class Template Argument Deduction)
- K2A-B1-12C++ IteratorsOct 10, 2018
A note on iterator categories, `std::iterator_traits`, common iterator operations, iterator adaptors, writing custom iterators, C++20 iterator concepts, and iterator invalidation
- K2A-B1-13C++ STL ContainersApr 11, 2018
A note on the C++ STL containers, iteration patterns, and `std::priority_queue` with custom comparators
- K2A-B1-14C++ Vocabulary TypesMay 20, 2019
A note on C++ "vocabulary" types — `std::pair`, `std::tuple`, structured bindings, `std::optional`, `std::variant`, `std::any`, and `std::expected` (C++23)
- K2A-B1-15C++ Useful Algorithms and ClassesOct 3, 2018
A note on `std::initializer_list` and the most useful `<algorithm>` and `<numeric>` functions
- K2A-B1-16C++ Ranges, Views, and SpanJun 15, 2021
A note on C++20 Ranges and views composition, range concepts, projections, `std::span`, and the C++23 additions (`ranges::to`, `chunk`, `zip`, `std::generator`)
- K2A-B1-17C++ TemplatesOct 27, 2018
A note on the C++ templates, variadic templates, template metaprogramming, SFINAE, type traits, and concepts (C++20)
- K2A-B1-18C++ `constexpr` and Compile-Time ProgrammingAug 15, 2019
A note on `constexpr` (C++11+), `consteval` (C++20), `constinit` (C++20), `if constexpr` (C++17), `static_assert`, and compile-time evaluation rules
- K2A-B1-19C++ Bit OperationsApr 5, 2020
A note on bitwise operators, `std::bitset`, the `<bit>` library (`std::bit_cast`, `std::popcount`, `std::countl_zero`, etc.), `std::byteswap` (C++23), and common bit-manipulation patterns
- K2A-B1-20C++ IO and FormattingDec 27, 2018
A note on C++ I/O streams, formatting manipulators, `std::bind` with placeholders, and modern formatting (`std::format`, `std::print`)
- K2A-B1-21C++ String Streams and RegexDec 30, 2018
A note on `std::stringstream`, `std::ostringstream`, `std::istringstream` for in-memory I/O, and the `<regex>` library for pattern matching
- K2A-B1-22C++ Chrono and TimeApr 15, 2020
A note on `<chrono>` — durations, time points, clocks, calendar (C++20), time zones, formatting, and timing patterns
- K2A-B1-23C++ FilesystemJul 10, 2018
A note on `std::filesystem` (C++17) — `path`, queries, traversal, file operations, error handling, and cross-platform considerations
- K2A-B1-24C++ RandomJun 15, 2018
A note on `<random>` — engines, distributions, seeding, common patterns, and why `rand()` is not enough
- K2A-B1-25C++ ConcurrencyNov 9, 2018
A note on the C++ concurrency primitives — `std::async`, futures, condition variables, atomics, and `std::call_once`
- K2A-B1-26C++ Coroutines (C++20)Aug 1, 2021
A note on C++20 coroutines — `co_await`, `co_yield`, `co_return`, `std::generator` (C++23), custom awaitables, common coroutine types, and when to use them
- K2A-B1-27C++ Modules (C++20)Mar 15, 2022
A note on C++20 modules — `import`, `export`, module partitions, header units, the global module fragment, and migration from `#include`