kb · c++ reference
Независимые разделы: сам язык и стандартная библиотека по стандартам (C++11–26), ООП/умные указатели/контейнеры/шаблоны как отдельные механики C++, многопоточность, сторонние библиотеки (Boost и другие), интервью-паттерны алгоритмов и структур данных.Independent sections: the language and standard library by standard (C++11–26), OOP/smart pointers/containers/templates as distinct C++ mechanics, concurrency, third-party libraries (Boost and others), interview patterns for algorithms and data structures.
C++11 → C++26 по стандартам, один HTML на фичу — ядро языка и STL так, как их вводил каждый релиз стандарта.C++11 → C++26 by standard, one HTML per feature — the language core and STL as each standard release introduced them.
Конструкторы/деструкторы, наследование, полиморфизм, индексаторы (свойства и события опущены — их нет в языке), плюс RAII, Rule of 0/3/5, виртуальные таблицы.Constructors/destructors, inheritance, polymorphism, indexers (properties and events are omitted — the language has neither), plus RAII, the Rule of 0/3/5, vtables.
Не API (это в stl/), а устройство внутри: control block, атомарный счётчик у shared_ptr, проблема циклов и weak_ptr, почему make_shared предпочтительнее new.Not the API (that's in stl/), but the internals: the control block, shared_ptr's atomic count, the cycle problem and weak_ptr, why make_shared beats new.
Стек vs куча, категории и инвалидация итераторов, устройство std::vector (реаллокация, contiguous memory) и std::unordered_map (коллизии, rehashing). Деревья — в algorithms/.Stack vs heap, iterator categories and invalidation, std::vector internals (reallocation, contiguous memory) and std::unordered_map (collisions, rehashing). Trees live in algorithms/.
SFINAE и concepts (C++20), вывод и специализация шаблонов, constexpr/consteval — с рабочими примерами, не только теорией.SFINAE and concepts (C++20), template deduction and specialization, constexpr/consteval — with working examples, not just theory.
8 категорий от базового ООП до глубокой памяти и метапрограммирования — только формулировки вопросов, ответы ещё не написаны.8 categories from basic OOP to deep memory and metaprogramming — question wording only, answers not yet written.
Boost и другие библиотеки, без которых не пишется реальный C++ проект — версии API привязаны к релизам самих библиотек, не к стандарту языка.Boost and other libraries no real C++ project goes without — API versions here are tied to the libraries' own releases, not to the language standard.
Interview-паттерны: two pointers, sliding window, binary search, DP, графы — распознавание триггеров задачи, а не учебный курс по CS. Каркас готов, страницы фич ещё не написаны.Interview patterns: two pointers, sliding window, binary search, DP, graphs — recognizing a problem's triggers, not a CS textbook course. Skeleton ready, feature pages not yet written.
23 классических паттерна GoF (Creational/Structural/Behavioral) плюс C++-идиомы (RAII, PImpl, CRTP), которых у GoF не было. Каркас готов, страницы фич ещё не написаны.The 23 classic GoF patterns (Creational/Structural/Behavioral) plus C++ idioms (RAII, PImpl, CRTP) that GoF never had. Skeleton ready, feature pages not yet written.
Масштабирование, кэширование, шардирование БД, CAP-теорема, очереди сообщений — язык-агностичные темы собеседований по проектированию систем.Scaling, caching, database sharding, the CAP theorem, message queues — language-agnostic system-design interview topics.
Fundamentals (memory model, atomic, CAS/ABA) плюс архитектурные паттерны поверх stl/-примитивов (mutex, jthread): producer-consumer, thread pool, actor model. Заложен запас на расширение.Fundamentals (the memory model, atomic, CAS/ABA) plus architectural patterns built on stl/ primitives (mutex, jthread): producer-consumer, thread pool, the actor model. Built with room to grow.
CMake, Conan/vcpkg, санитайзеры, статический анализ, профилировщики — то, что не язык и не библиотека, но каждый день в работе.CMake, Conan/vcpkg, sanitizers, static analysis, profilers — not the language, not a library, but everyday work.
Стадии компиляции, GCC vs Clang vs MSVC, оптимизации, линковка и ODR — что происходит с кодом от исходника до бинарника.Compilation stages, GCC vs Clang vs MSVC, optimizations, linking and ODR — what happens to your code from source to binary.