{"id":102491,"url":"https://github.com/0voice/cpp-learning-2025","name":"cpp-learning-2025","description":"2025 最新｜C++ 一站式资源库：体系化学习路线 + 详细的入门教程 + 常用开发工具 + 优质资源合集 + 高频面试题（含解析），求职进阶必备！","projects_count":323,"last_synced_at":"2026-04-13T21:00:43.703Z","repository":{"id":324726032,"uuid":"1098046490","full_name":"0voice/cpp-learning-2025","owner":"0voice","description":"2025 最新｜C++ 一站式资源库：体系化学习路线 + 详细的入门教程 + 常用开发工具 + 优质资源合集 + 高频面试题（含解析），求职进阶必备！","archived":false,"fork":false,"pushed_at":"2025-11-29T05:58:55.000Z","size":714,"stargazers_count":340,"open_issues_count":0,"forks_count":23,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-02-17T19:07:50.494Z","etag":null,"topics":["awesome","awesome-cpp","awesome-list","cpp","cpp-interview-questions","cpp-learning","cpp-resources","cpp-roadmap","cpp20","learn-cpp","linux","modern-cpp","roadmap"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0voice.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"roadmap/cpp-roadmap.en.svg","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-17T07:28:15.000Z","updated_at":"2026-02-17T10:56:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/0voice/cpp-learning-2025","commit_stats":null,"previous_names":["0voice/awesome-modern-cpp-2025","0voice/awesome-cpp-2025"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0voice/cpp-learning-2025","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fcpp-learning-2025","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fcpp-learning-2025/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fcpp-learning-2025/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fcpp-learning-2025/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0voice","download_url":"https://codeload.github.com/0voice/cpp-learning-2025/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0voice%2Fcpp-learning-2025/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"readme":"# Awesome Modern C++ 2025\n🌟 A one-stop navigation repository for anyone learning modern C++.  \n💡 From absolute beginner to building real projects and passing technical interviews.  \n\u003cp\u003e\n  \u003ca href=\"https://github.com/0voice/awesome-modern-cpp-2025/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/0voice/awesome-modern-cpp-2025?color=ffcb47\u0026label=%E2%AD%90%20Stars\u0026style=for-the-badge\" alt=\"Stars\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/0voice/awesome-modern-cpp-2025/fork\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/0voice/awesome-modern-cpp-2025?color=34d058\u0026label=%F0%9F%8D%B4%20Forks\u0026style=for-the-badge\" alt=\"Forks\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/0voice/awesome-modern-cpp-2025/watchers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/watchers/0voice/awesome-modern-cpp-2025?color=8b46ff\u0026label=%F0%9F%94%94%20Watch\u0026style=for-the-badge\" alt=\"Watchers\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[中文版 README](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/README.md)\n\n**Target Audience**\n- Complete programming beginners\n- CS/EE students\n- Developers switching from other languages (Python/Java/Go → C++)\n- Junior C++ engineers who want to solidify foundations and prepare for interviews\n\n**Why Learn C++ in 2025?**\n- Unmatched performance \u0026 control over system resources\n- Dominant in high-performance domains: game engines, trading systems, embedded, browsers, databases, AI inference\n- Modern C++ (C++17/20/23/26) is safe, expressive, and productive\n- Strong transferable skills → Rust, systems programming, performance engineering\n- Consistently high-paying and in-demand (gaming, finance, autonomous vehicles, robotics, HPC)\n\nRelevant discussions:\n- [Why you should learn C++](https://www.youtube.com/shorts/1Zku-mXDY9g)\n- [C++ Applications \u0026 Why Learn It](https://www.youtube.com/watch?v=brqRL_t0RmM)\n- [Should You Learn C++ in the AI Era?](https://www.youtube.com/watch?v=1POqwCxIhjo)\n- [The Truth About C++ (Is It Still Worth Your Time?)](https://www.youtube.com/watch?v=q1ZmFc-sqNc)\n- [Best C/C++ Learning Roadmap 2025](https://www.youtube.com/watch?v=gO4Jp78nM0g)\n\nWant to know what the father of C++, **Bjarne Stroustrup**, has personally answered about C++ in interviews and Q\u0026As?  \nPlease refer to: [Bjarne Stroustrup's FAQ](#bjarne-stroustrups-faq).\n\nWant to read the latest C++ Standards Committee (WG21) proposals and papers?  \nPlease visit: [WG21 Papers](https://github.com/0voice/cpp-learning-2025/tree/main/WG21-Papers).\n\n## Table of Contents\n- [Learning Roadmap](#learning-roadmap)\n- [Core Knowledge](#core-knowledge)\n- [Advanced Modern C++ Features](advanced-modern-c-features-c20--c23)\n- [C++ Development on Linux](https://github.com/0voice/awesome-modern-cpp-2025/tree/main/cpp-on-linux)\n- [Recommended Resources](#recommended-resources)\n- [Tools](#tools)\n- [Application Fields](#application-fields)\n- [Real-World Projects](#real-world-projects)\n- [Interview Preparation](#interview-preparation)\n- [LeetCode Problems](#leetcode-problems)\n- [Bjarne Stroustrup's FAQ](bjarne-stroustrups-faq)\n- [Resource Declaration](#resource-declaration)\n\n## Learning Roadmap\n\n  \u003cimg src=\"https://raw.githubusercontent.com/0voice/awesome-modern-cpp-2025/main/roadmap/cpp-roadmap.en.svg\"\u003e\n\n### Stage 0: Preparation (0.5–1 day)\n**Goal**: Set up environment, compile and run your first C++ program  \n- Windows (MinGW + VS Code)\n- macOS (Xcode Command Line Tools)\n- Linux (GCC/Clang)\n\nIf you haven't completed this step or encounter any difficulties, please refer to the [C++ Development Environment Setup Guide](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/environment_setup/README.md).\n\n### Stage 1: Fundamentals (2–3 weeks)\n**Goal**: Master basic syntax, understand compilation process, avoid common pitfalls  \n**Key Topics**\n- Variables, data types, operators, control flow, functions, arrays, strings\n- Pointers \u0026 references basics, const/volatile/static basics\n- Compilation \u0026 linking, header guards\n- CMake basics (multi-file projects)\n\n**Project**: [Calculator](https://github.com/arash28134/simple-calculator), [Guess-the-number](https://github.com/mrnazu/guess-the-number)\n\n### Stage 2: Core OOP (3–4 weeks)\n**Goal**: Design clean classes and understand polymorphism  \n**Modules**\n1. Classes \u0026 objects, constructors/destructors\n2. Copy/move semantics, deep vs shallow copy\n3. Inheritance, virtual functions, vtable\n4. static members, friend, basic templates\n\n**Project**: [Student management system](https://github.com/abhiishekpanchal/STUDENT-MANAGEMENT-SYSTEM---OOPS-CONCEPTS) / [Library management system](https://github.com/MAbubakkar/Library-Management-System) \n\n### Stage 3: Modern C++ \u0026 STL (2–3 weeks)\n**Goal**: Write idiomatic, efficient code  \n**Topics**\n- All STL containers \u0026 algorithms\n- Iterators \u0026 invalidation\n- Lambda, auto, range-for, smart pointers\n- Exception handling, file I/O\n\n**Project**: [High-performance word frequency tool](https://github.com/NimraGJay/STL), [Simple logger](https://github.com/Ahmed-Ibrahim-30/Logging-System)\n\n### Stage 4: Systems Programming (4–6 weeks)\n**Goal**: Build real production-grade components  \n**Topics**\n- RAII \u0026 smart pointers in depth\n- Multithreading (std::thread, mutex, condition_variable, atomic)\n- Thread pool implementation\n- Socket programming (TCP/UDP), simple HTTP server\n- Design patterns, debugging \u0026 profiling\n\n**Major Project (choose one)**\n- [High-Performance Thread Pool](https://github.com/progschj/ThreadPool)\n- [Lightweight HTTP Server with Thread Pool](https://github.com/yhirose/cpp-httplib)\n- [High-Performance Chat Server](https://github.com/chronoxor/CppServer)\n\n### Stage 5: Interview Sprint (2–3 weeks)\n**Goal**: Pass technical interviews confidently  \n- Full knowledge review\n- 150+ high-frequency questions\n- Project storytelling \u0026 mock interviews\n\n### Timeline Table\n| Week | Stage | Recommended Resources | Tasks |\n|------|-------|-----------------------|-------|\n| 0    | Stage 0 | Environment setup tutorials | Finish setup |\n| 1–3  | Stage 1 | The Cherno / freeCodeCamp C++ | 3 small demos → GitHub |\n| 4–7  | Stage 2 | C++ Primer | Student/Library system |\n| 7–9  | Stage 3 | Effective Modern C++ | Word frequency tool |\n| 10–15| Stage 4 | Major Project (choose one)  | One big project → GitHub |\n| 16–18| Stage 5 | LeetCode + mock interviews | 150 questions + resume projects |\n\n## Core Knowledge\n\n### [Basic Syntax](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/core_knowledge/%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E7%AF%87.md)\n- **Variables \u0026 Data Types**: Integral/floating-point/char/bool, `const`, `typedef`/`using`\n- **Operators \u0026 Expressions**: Arithmetic/relational/logical operators, compound assignment, increment/decrement (prefix vs postfix)\n- **Control Flow**: `if-else`, `switch`, `for`/`while`/`do-while`, `break`/`continue`, `cin`/`cout` + `iomanip`, `namespace`\n- **Functions**: Definition vs declaration, pass-by-value/reference/pointer, return values, function overloading, default arguments, lambda introduction\n- **Arrays \u0026 Strings**: One-dimensional arrays, C-style strings vs `std::string` (common operations)\n- **Pointers Basics**: Definition/dereference/address-of, pointer arithmetic, pointers to arrays/functions, dangling/wild pointers, `nullptr`, core differences between pointers and references\n\n### [Object-Oriented Programming](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/core_knowledge/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%AF%87.md)\n- **Classes \u0026 Objects**: `class` vs `struct`, member variables/functions, object creation (stack vs heap), access specifiers (`public`/`private`/`protected`)\n- **Constructors \u0026 Destructors**: Default/parameterized/copy/move constructors, move assignment, virtual destructor necessity, initialization lists, RAII principle, introduction to smart pointers, Rule of Five\n- **Inheritance \u0026 Polymorphism**: Inheritance syntax, base/derived classes, virtual functions, pure virtual functions + abstract classes, brief introduction to vtable/vptr\n- **Operator Overloading**: Assignment/arithmetic/relational/stream (`\u003c\u003c`/`\u003e\u003e`) operators, deep copy vs shallow copy\n- **Templates Basics**: Function templates, class templates, connection to STL containers\n\n### [Intermediate \u0026 Modern C++](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/core_knowledge/%E8%BF%9B%E9%98%B6%E5%9F%BA%E7%A1%80%E7%AF%87.md)\n- **STL**: Containers (`vector`, `list`, `map`, `unordered_map`, `set`), iterators \u0026 invalidation scenarios, common algorithms (`sort`, `find`, `count`, `for_each`, etc.), lambda with STL\n- **File I/O**: Text/binary file read/write, `fstream`, file stream states, data persistence\n- **Exception Handling**: `try`/`catch`/`throw`, custom exception classes, `noexcept`\n- **Memory Management**: `new`/`delete` vs `malloc`/`free`, smart pointers (`unique_ptr`, `shared_ptr`, `weak_ptr`), avoiding memory leaks and circular references\n- **Modern C++ Features**: `auto`, `decltype`, lambda expressions, `nullptr`, move semantics, `std::move`, perfect forwarding\n\n### [Practical \u0026 Systems Programming](https://github.com/0voice/awesome-modern-cpp-2025/blob/main/core_knowledge/%E5%AE%9E%E6%88%98%E6%8F%90%E5%8D%87%E7%AF%87.md)\n- **Multithreading**: `std::thread`, `mutex`/`lock_guard`/`unique_lock`, `condition_variable`, `std::atomic`, thread pool principle \u0026 implementation, deadlock prevention\n- **Network Programming**: TCP/UDP fundamentals, Socket programming workflow (server/client), TCP sticky packet problem, introduction to I/O multiplexing (`select`/`poll`/`epoll`)\n- **Design Patterns**: Thread-safe Singleton, Simple Factory/Factory Method, Strategy pattern (use cases + core code)\n\n## Advanced Modern C++ Features (C++20 \u0026 C++23)\n\n### 1. Concepts and requires (C++20)\n**Purpose**: Add clear, readable constraints to template parameters, replacing complex SFINAE.  \n**When to use**: Mandatory for all generic libraries and custom template functions/classes.\n\n```cpp\ntemplate\u003ctypename T\u003e\nconcept Integral = std::is_integral_v\u003cT\u003e;\n\ntemplate\u003cIntegral T\u003e\nT add(T a, T b) { return a + b; }\n\n// Custom complex concept\ntemplate\u003ctypename T\u003e\nconcept Hashable = requires(T x) {\n    { std::hash\u003cT\u003e{}(x) } -\u003e std::convertible_to\u003cstd::size_t\u003e;\n};\n\ntemplate\u003cHashable T\u003e\nclass Cache { /* ... */ };\n```\n\n**Common pitfall**: Overly strict concepts may break valid code.  \n**Recommendation**: Start with loose constraints and tighten gradually.\n\n---\n\n### 2. Ranges Library (C++20)\n**Purpose**: Functional-style sequence processing with lazy evaluation and pipe syntax, making code more concise and efficient.  \n**When to use**: Anytime filter/map/take/drop/sort operations are needed.  \n**Advantages**: No intermediate containers, cache-friendly, 50% less code.\n\n```cpp\nstd::vector\u003cint\u003e v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};\n\nauto result = v\n    | std::views::filter([](int x) { return x % 2 == 0; })   // Even numbers\n    | std::views::transform([](int x) { return x * x; })     // Square\n    | std::views::take(4);                                   // First 4 elements\n\nfor (int x : result) std::cout \u003c\u003c x \u003c\u003c ' ';  // Output: 4 16 36 64\n```\n\n---\n\n### 3. std::span (C++20)\n**Purpose**: Lightweight, non-owning view of fixed-size arrays/containers for safe continuous data passing.  \n**When to use**: Replace raw pointers/size pairs with span for all \"continuous memory\" function parameters.\n\n```cpp\nvoid process(std::span\u003cconst int\u003e data) {\n    for (int x : data) std::cout \u003c\u003c x \u003c\u003c ' ';\n}\n\nstd::vector\u003cint\u003e vec{1, 2, 3};\nint arr[] = {4, 5, 6};\nprocess(vec);\nprocess(arr);\n```\n\n**Common mistake**: Span stores a view - dangling occurs if the original data is destructed.  \n**Note**: Ensure the original data outlives the span.\n\n---\n\n### 4. Coroutines (C++20)\n**Purpose**: Write asynchronous/generator code more naturally without callbacks or threads.\n\n```cpp\n#include \u003ccoroutine\u003e\n#include \u003ciostream\u003e\n\nstruct Generator {\n    struct promise_type {\n        int current_value;\n        std::suspend_always yield_value(int value) {\n            current_value = value;\n            return {};\n        }\n        std::suspend_always initial_suspend() { return {}; }\n        std::suspend_always final_suspend() noexcept { return {}; }\n        Generator get_return_object() { return {}; }\n        void return_void() {}\n        void unhandled_exception() {}\n    };\n    bool next() { /* Practical use requires a coroutine library */ return false; }\n    int value() { return 0; }\n};\n```\n\n---\n\n### 5. deducing this (C++23)\n**Purpose**: Allow member functions to treat `this` as a regular parameter, perfectly solving pain points in CRTP and recursive lambdas.\n\n```cpp\nstruct Node {\n    Node* left = nullptr;\n    Node* right = nullptr;\n\n    int height(this Node const\u0026 self) {\n        if (!self.left \u0026\u0026 !self.right) return 1;\n        int l = self.left ? self.left-\u003eheight() : 0;\n        int r = self.right ? self.right-\u003eheight() : 0;\n        return 1 + std::max(l, r);\n    }\n};\n```\n\n---\n\n### 6. std::expected (C++23)\n**Purpose**: Modern return type that carries either a value or an error message, lighter than exceptions and return-code pairs.  \n**Use cases**: All operations that may fail but don't warrant exceptions (parsing, I/O, calculations, etc.).\n\n```cpp\nstd::expected\u003cint, std::string\u003e safe_divide(int a, int b) {\n    if (b == 0) return std::unexpected(\"division by zero\");\n    return a / b;\n}\n\nauto result = safe_divide(42, 7)\n                .and_then([](int x) { return safe_divide(100, x); })\n                .value_or(-1);\n```\n\n---\n\n### 7. std::mdspan (C++23)\n**Purpose**: Non-owning multi-dimensional array view, ideal for images, matrices, and scientific computing scenarios.\n\n```cpp\n#include \u003cmdspan\u003e\n\nvoid print(std::mdspan\u003cconst int, std::dextents\u003csize_t, 2\u003e\u003e matrix) {\n    for (size_t i = 0; i \u003c matrix.extent(0); ++i) {\n        for (size_t j = 0; j \u003c matrix.extent(1); ++j)\n            std::cout \u003c\u003c matrix(i, j) \u003c\u003c ' ';\n        std::cout \u003c\u003c '\\n';\n    }\n}\n```\n\n---\n\n### 8. std::flat_map / std::flat_set (C++23)\n**Purpose**: Ordered map/set based on contiguous containers, offering better cache locality and faster lookup speeds.  \n**When to use**: Replace `std::map` with `std::flat_map` for configuration tables, dictionaries, and frequently accessed small datasets (\u003c 100,000 entries).\n\n```cpp\nstd::flat_map\u003cstd::string, int\u003e m = {\n    {\"apple\", 5}, {\"banana\", 3}, {\"orange\", 8}\n};\n// Automatically sorted, contiguous memory, ideal for hot data.\n```\n\n---\n\n### 9. Multi-dimensional subscript operator[] (C++23)\n**Purpose**: Natively support multi-dimensional array subscript operations with intuitive syntax.\n\n```cpp\nint arr[3][4][5]{};\narr[1, 2, 3] = 42;        // Equivalent to arr[1][2][3] = 42;\n```\n\n---\n\n### 10. Lambda Enhancements (C++23)\n**Purpose**: Support template parameters and attribute markers for stronger expressiveness.\n\n```cpp\nauto templated_lambda = []\u003ctypename T\u003e(T a, T b) {\n    return a + b;\n};\n\nauto attributed = [] [[nodiscard]] (int x) { return x * x; };\n```\n\n## Recommended Resources\n\n### Video\n| Title | Link |\n|-------|------|\n| C++ Programming Course - Beginner to Advanced (2024) | https://www.youtube.com/watch?v=8jLOx1hD3_o |\n| Full C++ Crash Course for Beginners (2025 Edition) | https://www.youtube.com/watch?v=zKddJjNc0_s |\n| C++ FULL COURSE For Beginners (7+ hours) | https://www.youtube.com/watch?v=GQp1zzTwrIg |\n| The Cherno – C++ Series (150+ episodes, gold standard) | https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb |\n| cpp-weekly by Jason Turner (modern C++ best practices) | https://www.youtube.com/c/lefticus1 |\n| CppCon talks (latest standards \u0026 real-world usage) | https://www.youtube.com/c/CppCon |\n\n### Physical Book\n| Book Title                                           | Author                          | Difficulty | Description                                                                 |\n|------------------------------------------------------|---------------------------------|------------|-----------------------------------------------------------------------------|\n| C++ Primer Plus (6th Edition)                        | Stephen Prata                   | ★★☆☆☆     | Beginner-friendly, easy-to-read language, life-related examples, gradual progression from syntax to OOP, exercises in every chapter. Perfect for pure newbies to steadily build a foundation. The only downside is that it does not cover C++11+ modern idioms. |\n| C++ Primer                              | Stanley B. Lippman et al.       | ★★★☆☆     | The comprehensive and systematic “C++ Bible”, covering syntax, STL, and C++11+ modern features with a strong emphasis on real-world practice. High knowledge density and in-depth explanations. ideal for solidifying your knowledge base or advancing to modern style after some foundation. |\n| Accelerated C++                                      | Andrew Koenig \u0026 Barbara E. Moo  | ★★★☆☆     | Project-driven fast-track introduction, skips redundant content, focuses on efficient and idiomatic production code. Best for learners with slight prior programming experience who want to get to real projects quickly. |\n| Programming: Principles and Practice Using C++ (2nd Edition) | Bjarne Stroustrup (creator of C++) | ★★★☆☆     | Balances principles and practice; goes beyond syntax to develop abstraction and algorithmic thinking. Perfect for those who want to understand the design philosophy of C++ and build solid underlying logic. |\n| Effective C++ (3rd Edition)                          | Scott Meyers                    | ★★★★☆     | Distills 55 core best-practice guidelines that directly target code pitfalls. Essential reading for the transition from beginner to intermediate; dramatically improves code quality in a short time. |\n| The C++ Programming Language (4th Edition)          | Bjarne Stroustrup (creator of C++) | ★★★★★     | The official authoritative reference manual, exhaustive coverage of the C++ standard and advanced features (including modern ones). Suitable for developers at all stages as a lookup resource. |\n| Modern C++ Design                                    | Andrei Alexandrescu             | ★★★★★     | In-depth exploration of template metaprogramming and generic design patterns, focusing on high-level development techniques. Only for experienced C++ programmers—newbies beware. |\n\nDifficulty guide (from a true zero-basis perspective):  \n★☆☆☆☆ ~ ★★☆☆☆ : Can be read by absolute beginners  \n★★★☆☆          : Requires patience + daily coding practice  \n★★★★☆ ~ ★★★★★ : Mid-to-advanced level only  \n\n### Free Electronic Book / PDF\n| Book Title                                              | Author                          | Description                                                                                   |\n|---------------------------------------------------------|---------------------------------|-----------------------------------------------------------------------------------------------|\n| [A Complete Guide to Programming in C++](https://www.idpoisson.fr/volkov/C%2B%2B.pdf) | Ulla Kirchartz \u0026 Peter Müller   | From zero to advanced. Covers syntax, OOP, and STL with exercises and solutions. |\n| [Beginning C++ Programming](https://notalentgeek.github.io/note/note/project/project-independent/pi-brp-beginning-c-programming/document/20170807-1504-cet-1-book-and-source-1.pdf) | Ivor Horton                     | Step-by-step beginner guide focusing on syntax, functions, and classes. |\n| [C++ Tutorial](https://cds.iisc.ac.in/wp-content/uploads/DS286.AUG2016.Lab2_.cpp_tutorial.pdf) | IISc Bangalore                  | Concise university-style tutorial focusing on core syntax, pointers, and file I/O. |\n| [CS 200: Concepts of Programming using C++ (Spring 2025)](https://rachel.likespizza.com/course-archives/202501_CS200.pdf) | Rachel Wil Singh                | 2025 course notes covering fundamentals, data structures, and debugging. |\n| [C++ Annotations (Version 11.0)](https://www.icce.rug.nl/documents/cplusplus/11.0/C++Annotations-11.0.pdf) | Frank B. Brokken                | Comprehensive, freely available reference. In-depth coverage of OOP, multithreading, and modern features. |\n\n### Websites\n\n| Website Name                  | Description                                                                                           |\n|-------------------------------|-------------------------------------------------------------------------------------------------------|\n| [LearnCpp.com](https://www.learncpp.com/) | The best free step-by-step C++ tutorial on the internet. Emphasizes best practices, modern C++, and avoids common pitfalls. Perfect for beginners to intermediate learners. |\n| [cppreference.com](https://en.cppreference.com/w/) | The definitive, most accurate C++ standard library and language reference. Used daily by professional developers worldwide. |\n| [CPlusPlus.com](https://cplusplus.com/) | Classic reference site with tutorials, full standard library documentation, examples, and active forums. |\n| [GeeksforGeeks – C++](https://www.geeksforgeeks.org/c-plus-plus/) | Huge collection of C++ articles, data structures, algorithms, and interview questions with clean code examples. Extremely popular among job seekers. |\n| [Codecademy – Learn C++](https://www.codecademy.com/learn/learn-c-plus-plus) | Interactive browser-based course. Great for hands-on practice from basics to intermediate topics. |\n| [Coursera – C++ Courses](https://www.coursera.org/courses?query=c%2B%2B) | University-level C++ specializations (e.g., University of London, UC Santa Cruz, Stanford). Includes videos, quizzes, and certificates. |\n| [LeetCode (C++ track)](https://leetcode.com/problemset/all/?search=C%2B%2B) | The #1 platform for coding interview preparation. Thousands of problems with C++ solutions and discussion. |\n| [HackerRank – C++](https://www.hackerrank.com/domains/tutorials/10-days-of-cpp) | Beginner-friendly challenges and 30-day C++ tutorials. |\n| [Exercism – C++ Track](https://exercism.org/tracks/cpp) | Free mentoring platform with high-quality exercises and code reviews from real developers. |\n| [Awesome C++](https://github.com/fffaraz/awesome-cpp) | Curated list of awesome C++ frameworks, libraries, resources, and tools. A must-bookmark for exploring the ecosystem. |\n| [Compiler Explorer (Godbolt)](https://godbolt.org/) | Instantly see how your C++ code compiles to assembly across different compilers and optimization levels. Invaluable for learning and performance tuning. |\n\n## Tools\n### Compilers\n- [GCC](https://gcc.gnu.org/) – Open-source, cross-platform king\n- [Clang/LLVM](https://clang.llvm.org/) – Modern compiler with excellent diagnostics\n- [MSVC](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist) – Native Windows compiler (Visual Studio)\n- [MinGW-w64](https://www.mingw-w64.org/) – GCC on Windows\n- [Intel oneAPI DPC++/C++ Compiler](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) – AVX-512 \u0026 vectorization beast\n- [Emscripten](https://emscripten.org/) – Compile C++ to WebAssembly\n\n### Integrated Development Environments (IDEs)\n- [Visual Studio](https://visualstudio.microsoft.com/) – Full-featured Windows powerhouse\n- [CLion](https://www.jetbrains.com/clion/) – Best JetBrains C++ IDE\n- [VS Code + C/C++ extensions](https://code.visualstudio.com/) – Lightweight \u0026 hugely popular\n- [Qt Creator](https://www.qt.io/product/development-tools) – Official Qt IDE\n- [VS Code + CMake Tools + clangd](https://code.visualstudio.com/) – The most popular combo in 2025\n- [CodeLite](https://codelite.org/) – Free open-source alternative\n- [Cevelop](https://www.cevelop.com/) – Modernized Eclipse CDT fork\n\n### Build Systems\n- [CMake](https://cmake.org/) – De-facto industry standard\n- [Meson](https://mesonbuild.com/) – Faster \u0026 cleaner than CMake (fastest growing in 2025)\n- [Ninja](https://ninja-build.org/) – Extremely fast build backend\n- [Bazel](https://bazel.build/) – Google-scale monorepo build system\n- [xmake](https://xmake.io/) – Modern Chinese build system with Lua config (very smooth)\n- [Premake](https://premake.github.io/) – Lightweight cross-platform project generator\n\n### Debuggers \u0026 Performance Profiling\n- [GDB](https://sourceware.org/gdb/) / [LLDB](https://lldb.llvm.org/) – Classic command-line debuggers\n- [WinDbg](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/) – Windows kernel \u0026 driver debugging\n- [Tracy Profiler](https://github.com/wolfpld/tracy) – Hottest frame-level profiler in 2025\n- [Perfetto](https://perfetto.dev/) – Google’s system-wide tracing tool\n- [Valgrind](https://valgrind.org/) + [AddressSanitizer](https://clang.llvm.org/docs/AddressSanitizer.html) – Memory error detectors\n- [RenderDoc](https://renderdoc.org/) – Graphics debugging (Vulkan/DX/OpenGL)\n\n### Package Managers\n- [vcpkg](https://vcpkg.io/) – Microsoft official, seamless VS integration\n- [Conan 2.x](https://conan.io/) – Most mature C++ package manager\n- [cppan](https://cppan.org/) – Veteran (still usable)\n- [Hunter](https://github.com/cpp-pm/hunter) – Native CMake integration\n- [Buckaroo](https://buckaroo.pm/) – Modern newcomer\n\n### Static Analysis \u0026 Testing\n- [Clang-Tidy](https://clang.llvm.org/extra/clang-tidy/) – Official static analyzer\n- [Cppcheck](https://cppcheck.net/) – Lightweight bug finder\n- [PVS-Studio](https://pvs-studio.com/) – Industrial-grade analyzer (free for open-source)\n- [Google Test](https://github.com/google/googletest) / [Catch2](https://github.com/catchorg/Catch2) – Industry-standard testing frameworks\n- [doctest](https://github.com/doctest/doctest) – Single-header, ultra-lightweight testing\n- [ApprovalTests.cpp](https://github.com/approvals/ApprovalTests.cpp) – Golden-master / snapshot testing\n\n### Code Formatting \u0026 Refactoring\n- [clang-format](https://clang.llvm.org/docs/ClangFormat.html) – Industry standard formatter\n- [uncrustify](https://github.com/uncrustify/uncrustify) – Highly configurable\n- [astyle](http://astyle.sourceforge.net/) – Veteran formatter\n- [Sourcery](https://sourcery.ai/) (paid) – AI-powered refactoring suggestions\n\n### Memory \u0026 Performance Tools\n- [Valgrind](https://valgrind.org/) – Heavyweight memory checker\n- [Address/Memory/Thread Sanitizers](https://clang.llvm.org/docs/) – Built into Clang/GCC\n- [gperftools](https://github.com/gperftools/gperftools) – CPU \u0026 heap profiler\n- [tcmalloc](https://github.com/google/tcmalloc) – High-performance allocator\n\n### Documentation \u0026 Visualization\n- [Doxygen](https://www.doxygen.nl/) – Classic code documentation generator\n- [Sphinx + Breathe](https://www.sphinx-doc.org/) – Modern documentation system\n- [Graphviz](https://graphviz.org/) – Class / call-graph visualization\n\n### Development Helpers\n- [Git](https://git-scm.com/) + [GitKraken](https://www.gitkraken.com/) / [Fork](https://git-fork.com/) – Version control\n- [Docker](https://www.docker.com/) – Environment isolation\n- [CMake GUI / ccmake](https://cmake.org/cmake/gui/) – Visual CMake configuration\n- [Ninja + ccache](https://ccache.dev/) – 5–10× faster incremental builds\n- [include-what-you-use](https://include-what-you-use.org/) – Header dependency analyzer\n- [cpplint](https://github.com/cpplint/cpplint) – Google style checker\n- [GitHub Copilot / Codeium / Tabnine](https://github.com/features/copilot) – AI-powered code completion\n\n## Application Fields\n\n| Domain                     | Core Scenarios                                                                 | Recommended Frameworks / Libraries                                                                                                    |\n|----------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\n| **Desktop Application Development** | Office software, industrial control panels, desktop utilities, design tools    | [Qt](https://www.qt.io/) – Full-stack cross-platform framework (GUI, networking, DB, multimedia)\u003cbr\u003e[MFC](https://learn.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications) – Native Windows framework (good for legacy)\u003cbr\u003e[wxWidgets](https://www.wxwidgets.org/) – Cross-platform, native look \u0026 feel\u003cbr\u003e[FLTK](http://www.fltk.org/) – Fast Light Toolkit\u003cbr\u003e[ImGui](https://github.com/ocornut/imgui) – Immediate-mode GUI, minimal dependencies\u003cbr\u003e[JUCE](https://juce.com/) – All-in-one cross-platform audio/application framework |\n| **Embedded Development**   | Car infotainment, smart home panels, medical devices, industrial controllers, router firmware | [Qt for Embedded](https://www.qt.io/qt-for-embedded-linux) – GUI on ARM etc.\u003cbr\u003e[FreeRTOS](https://www.freertos.org/) – Lightweight RTOS\u003cbr\u003e[Yocto / Buildroot](https://www.yoctoproject.org/) – Embedded Linux distro builders\u003cbr\u003e[ETL](https://github.com/ETLCPP/etl) – Embedded Template Library (no STL)\u003cbr\u003e[tbox](https://github.com/tboox/tbox) – Cross-platform glib-like utils\u003cbr\u003e[lwIP](https://savannah.nongnu.org/projects/lwip/) – Lightweight TCP/IP stack\u003cbr\u003e[DPDK](https://www.dpdk.org/) – High-speed packet processing |\n| **Backend / Server Development** | Distributed systems, API gateways, database kernels, high-concurrency services (game servers, payment systems) | [Boost.Asio](https://www.boost.org/doc/libs/1_85_0/doc/html/boost_asio.html) – Async networking\u003cbr\u003e[Muduo](https://github.com/chenshuo/muduo) – High-performance Reactor server\u003cbr\u003e[Brpc](https://github.com/apache/incubator-brpc) – Multi-protocol RPC framework\u003cbr\u003e[Drogon](https://drogon.org/) – Async HTTP + ORM framework\u003cbr\u003e[Seastar](https://seastar.io/) – Lock-free high-performance server framework\u003cbr\u003e[Folly](https://github.com/facebook/folly) – Facebook’s high-performance library collection\u003cbr\u003e[Crow](https://crowcpp.org/) – Micro web framework (Flask-like) |\n| **Game Development**       | AAA game clients, game engines, game servers, indie games                     | [Unreal Engine](https://www.unrealengine.com/) – Open-source engine with Blueprints + C++\u003cbr\u003e[Cocos2d-x](https://www.cocos.com/en/cocos2d-x) – Cross-platform 2D engine\u003cbr\u003e[Unity](https://unity.com/) – C# on top + C++ plugins\u003cbr\u003e[raylib](https://www.raylib.com/) – Simple \u0026 fun game programming library\u003cbr\u003e[SFML](https://www.sfml-dev.org/) – Simple and Fast Multimedia Library\u003cbr\u003e[SDL2](https://www.libsdl.org/) – Low-level multimedia layer\u003cbr\u003e[EnTT](https://github.com/skypjack/entt) – Modern C++ ECS framework |\n| **Audio/Video \u0026 Streaming** | Players, live streaming (push/pull), video editing, transcoding, surveillance | [FFmpeg](https://ffmpeg.org/) – The Swiss army knife of multimedia\u003cbr\u003e[GStreamer](https://gstreamer.freedesktop.org/) – Pipeline-based media framework\u003cbr\u003e[SDL](https://www.libsdl.org/) – Audio \u0026 rendering\u003cbr\u003e[OpenCV](https://opencv.org/) – Computer vision \u0026 video analysis\u003cbr\u003e[PortAudio](http://www.portaudio.com/) – Cross-platform audio I/O\u003cbr\u003e[miniaudio](https://miniaud.io/) – Single-header audio library\u003cbr\u003e[libav](https://libav.org/) – FFmpeg-based multimedia toolkit |\n| **AI / Machine Learning**  | Deep-learning inference, model optimization, high-performance computing (HPC) | [TensorFlow C++ API](https://www.tensorflow.org/api_docs/cc)\u003cbr\u003e[LibTorch (PyTorch C++)](https://pytorch.org/cppdocs/) – Dynamic-graph inference\u003cbr\u003e[OpenCV](https://opencv.org/) – Image preprocessing\u003cbr\u003e[Eigen](http://eigen.tuxfamily.org/) – Linear algebra\u003cbr\u003e[ONNX Runtime](https://onnxruntime.ai/) – Cross-framework inference engine\u003cbr\u003e[Dlib](https://dlib.net/) – ML toolkit\u003cbr\u003e[ncnn](https://github.com/Tencent/ncnn) – Mobile neural-network inference\u003cbr\u003e[mlpack](https://mlpack.org/) – Scalable ML library |\n| **Systems Programming / Kernel** | OS kernels, drivers, database engines, filesystems                           | [Linux Kernel](https://www.kernel.org/) – Kernel API development\u003cbr\u003e[WDF/KMDF](https://learn.microsoft.com/en-us/windows-hardware/drivers/wdf/) – Windows driver framework\u003cbr\u003e[SQLite](https://www.sqlite.org/) – Embedded DB engine\u003cbr\u003e[Boost](https://www.boost.org/) – General-purpose libraries\u003cbr\u003e[Abseil](https://abseil.io/) – Google’s common C++ libraries\u003cbr\u003e[jemalloc](https://jemalloc.net/) – High-performance allocator |\n| **FinTech / High-Frequency Trading** | HFT engines, quant trading platforms, risk systems (ultra-low latency)       | [QuickFIX](http://www.quickfixengine.org/) – FIX protocol engine\u003cbr\u003e[Boost.Asio](https://www.boost.org/) – Low-latency networking\u003cbr\u003e[QuantLib](https://www.quantlib.org/) – Open-source quantitative finance library |\n\n## Real-World Projects\n### Desktop Application Development\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [ocornut/imgui](https://github.com/ocornut/imgui) | ★★☆☆☆ | Immediate-mode GUI, debugging overlays |\n| [microsoft/terminal](https://github.com/microsoft/terminal) | ★★★★☆ | Large-scale modern desktop, GPU-accelerated rendering |\n| [flameshot-org/flameshot](https://github.com/flameshot-org/flameshot) | ★★★☆☆ | Screenshot tool, Qt + image processing |\n| [deskflow/deskflow](https://github.com/deskflow/deskflow) (ex-Barrier) | ★★★★☆ | Cross-computer mouse/keyboard sharing, networking |\n| [transmission/transmission](https://github.com/transmission/transmission) | ★★★☆☆ | Cross-platform BitTorrent client, async I/O |\n| [qBittorrent/qBittorrent](https://github.com/qBittorrent/qBittorrent) | ★★★☆☆ | Full-featured Qt torrent client |\n| [sqlitebrowser/sqlitebrowser](https://github.com/sqlitebrowser/sqlitebrowser) | ★★★☆☆ | Database visualization tool, SQL parsing |\n| [mltframework/shotcut](https://github.com/mltframework/shotcut) | ★★★★☆ | Professional video editor, FFmpeg integration |\n| [Genymobile/scrcpy](https://github.com/Genymobile/scrcpy) | ★★★☆☆ | Android screen mirroring, low-latency USB/Wi-Fi |\n\n### Embedded Development\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [lvgl/lvgl](https://github.com/lvgl/lvgl) | ★★☆☆☆ | Leading embedded GUI library |\n| [zephyrproject-rtos/zephyr](https://github.com/zephyrproject-rtos/zephyr) | ★★★★☆ | Modern RTOS, BLE, drivers |\n| [espressif/esp-idf](https://github.com/espressif/esp-idf) | ★★★★☆ | Official ESP32 SDK, low-power |\n| [ARM-software/CMSIS_5](https://github.com/ARM-software/CMSIS_5) | ★★★☆☆ | ARM Cortex standard interface |\n| [wolfSSL/wolfSSL](https://github.com/wolfSSL/wolfSSL) | ★★★☆☆ | Lightweight TLS/SSL for embedded |\n| [project-chip/connectedhomeip](https://github.com/project-chip/connectedhomeip) | ★★★★☆ | Matter (smart home) protocol stack |\n\n### Backend / Server Development\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [yhirose/cpp-httplib](https://github.com/yhirose/cpp-httplib) | ★☆☆☆☆ | Header-only HTTP server |\n| [drogonframework/drogon](https://github.com/drogonframework/drogon) | ★★☆☆☆ | High-performance async web framework |\n| [chenshuo/muduo](https://github.com/chenshuo/muduo) | ★★★★☆ | Classic Reactor network library |\n| [apache/brpc](https://github.com/apache/brpc) | ★★★★☆ | Baidu RPC framework, bthread |\n| [scylladb/seastar](https://github.com/scylladb/seastar) | ★★★★★ | Shard-per-core, lock-free, million QPS |\n| [grpc/grpc](https://github.com/grpc/grpc) | ★★★★☆ | High-performance RPC, Protobuf |\n| [oatpp/oatpp](https://github.com/oatpp/oatpp) | ★★☆☆☆ | Zero-dependency web framework + ORM |\n\n### Game Development\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [SFML/SFML](https://github.com/SFML/SFML) | ★☆☆☆☆ | Simple 2D multimedia layer |\n| [skypjack/entt](https://github.com/skypjack/entt) | ★★☆☆☆ | Modern ECS architecture |\n| [raysan5/raylib](https://github.com/raysan5/raylib) | ★★☆☆☆ | Minimalist game programming library |\n| [TheCherno/Hazel](https://github.com/TheCherno/Hazel) | ★★★★☆ | From-scratch engine (educational) |\n| [godotengine/godot](https://github.com/godotengine/godot) | ★★★★☆ | Full open-source engine |\n| [bkaradzic/bgfx](https://github.com/bkaradzic/bgfx) | ★★★★☆ | Cross-platform rendering backend |\n| [NVIDIA-Omniverse/PhysX](https://github.com/NVIDIA-Omniverse/PhysX) | ★★★★☆ | Physics simulation engine |\n\n### Audio/Video \u0026 Streaming\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [obsproject/obs-studio](https://github.com/obsproject/obs-studio) | ★★★★☆ | Live streaming, plugin system |\n| [FFmpeg/FFmpeg](https://github.com/FFmpeg/FFmpeg) | ★★★★☆ | Complete multimedia processing suite |\n| [bluenviron/mediamtx](https://github.com/bluenviron/mediamtx) | ★★★☆☆ | Zero-dependency RTMP/RTSP/WebRTC server |\n| [Haivision/srt](https://github.com/Haivision/srt) | ★★★★☆ | Secure Reliable Transport protocol |\n| [GStreamer/gstreamer](https://github.com/GStreamer/gstreamer) | ★★★★☆ | Pipeline-based media framework |\n\n### AI / Machine Learning\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [opencv/opencv](https://github.com/opencv/opencv) | ★★★☆☆ | Image processing \u0026 DNN module |\n| [Tencent/ncnn](https://github.com/Tencent/ncnn) | ★★★☆☆ | Mobile neural network inference |\n| [microsoft/onnxruntime](https://github.com/microsoft/onnxruntime) | ★★★☆☆ | Cross-platform model inference |\n| [pytorch/pytorch (LibTorch)](https://github.com/pytorch/pytorch) | ★★★★☆ | C++ frontend, custom operators |\n| [openvinotoolkit/openvino](https://github.com/openvinotoolkit/openvino) | ★★★★☆ | Intel inference engine \u0026 optimization |\n| [dmlc/xgboost](https://github.com/dmlc/xgboost) | ★★★★☆ | Gradient boosting library |\n\n### Systems Programming / Kernel\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [gabime/spdlog](https://github.com/gabime/spdlog) | ★☆☆☆☆ | Ultra-fast logging |\n| [sqlite/sqlite](https://github.com/sqlite/sqlite) | ★★★★☆ | Embedded database engine, B-tree |\n| [facebook/folly](https://github.com/facebook/folly) | ★★★★★ | Facebook infrastructure libraries |\n| [ClickHouse/ClickHouse](https://github.com/ClickHouse/ClickHouse) | ★★★★★ | Columnar DBMS, vectorized execution |\n| [torvalds/linux](https://github.com/torvalds/linux) | ★★★★★ | Linux kernel development |\n| [llvm/llvm-project](https://github.com/llvm/llvm-project) | ★★★★★ | Compiler infrastructure |\n\n### Data Processing \u0026 Storage\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [google/leveldb](https://github.com/google/leveldb) | ★★★☆☆ | LSM-tree key-value store |\n| [Tencent/rapidjson](https://github.com/Tencent/rapidjson) | ★★☆☆☆ | High-performance JSON parser |\n| [apache/thrift](https://github.com/apache/thrift) | ★★★☆☆ | Cross-language serialization \u0026 RPC |\n| [libevent/libevent](https://github.com/libevent/libevent) | ★★★☆☆ | Event notification library |\n\n### Security\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [openssl/openssl](https://github.com/openssl/openssl) | ★★★★☆ | Cryptography \u0026 SSL/TLS |\n| [curl/curl](https://github.com/curl/curl) | ★★★☆☆ | Secure HTTP client, certificate handling |\n\n### Distributed Systems\n| Project | Difficulty | Core Skills |\n|-------|------------|-------------|\n| [ceph/ceph](https://github.com/ceph/ceph) | ★★★★★ | Distributed object store \u0026 filesystem |\n| [etcd-io/etcd](https://github.com/etcd-io/etcd) (C++ client) | ★★★☆☆ | Distributed key-value store |\n\n## Interview Preparation\n[The Role of the `static` Keyword](interview_questions/README.en.md#the-role-of-the-static-keyword)  \n[The Role of the `const` Keyword](interview_questions/README.en.md#the-role-of-the-const-keyword)  \n[Differences Between `inline` Functions and Macros](interview_questions/README.en.md#differences-between-inline-functions-and-macros)  \n[The Role of the `explicit` Keyword](interview_questions/README.en.md#the-role-of-the-explicit-keyword)  \n[Differences Between `nullptr` and `NULL`](interview_questions/README.en.md#differences-between-nullptr-and-null)  \n[Differences Between `sizeof` and `strlen`](interview_questions/README.en.md#differences-between-sizeof-and-strlen)  \n[Differences Between `new` and `malloc`](interview_questions/README.en.md#differences-between-new-and-malloc)  \n[Differences Between `delete` and `delete[]`](interview_questions/README.en.md#differences-between-delete-and-delete)  \n[Four Types of Cast Conversions](interview_questions/README.en.md#four-types-of-cast-conversions)  \n[The Entire Process of C++ Program Compilation and Linking](interview_questions/README.en.md#the-entire-process-of-c-program-compilation-and-linking)  \n[Differences Between `struct` and `class`](interview_questions/README.en.md#differences-between-struct-and-class)  \n[Differences Between C and C++](interview_questions/README.en.md#differences-between-c-and-c)  \n[The Role of the `volatile` Keyword](interview_questions/README.en.md#the-role-of-the-volatile-keyword)  \n[How is Polymorphism Implemented? Do You Understand Virtual Function Tables?](interview_questions/README.en.md#how-is-polymorphism-implemented-do-you-understand-virtual-function-tables)  \n[Why Must the Base Class Destructor Be Virtual?](interview_questions/README.en.md#why-must-the-base-class-destructor-be-virtual)  \n[Can Constructors Be Virtual? Can Destructors Be Pure Virtual?](interview_questions/README.en.md#can-constructors-be-virtual-can-destructors-be-pure-virtual)  \n[Differences Between Overloading, Overriding, and Redefinition](interview_questions/README.en.md#differences-between-overloading-overriding-and-redefinition)  \n[Differences Between Copy Constructors and Assignment Operator Overloading](interview_questions/README.en.md#differences-between-copy-constructors-and-assignment-operator-overloading)  \n[Differences Between Deep Copy and Shallow Copy](interview_questions/README.en.md#differences-between-deep-copy-and-shallow-copy)  \n[Rule of Three / Rule of Five](interview_questions/README.en.md#rule-of-three--rule-of-five)  \n[The `final` and `override` Keywords](interview_questions/README.en.md#the-final-and-override-keywords)  \n[Why Can't Constructors Be Virtual?](interview_questions/README.en.md#why-cant-constructors-be-virtual)  \n[Differences Between Pure Virtual Functions and Virtual Functions](interview_questions/README.en.md#differences-between-pure-virtual-functions-and-virtual-functions)  \n[Differences Between Abstract Classes and Interfaces](interview_questions/README.en.md#differences-between-abstract-classes-and-interfaces)  \n[The Role of the `friend` Keyword](interview_questions/README.en.md#the-role-of-the-friend-keyword)  \n[How to Prevent a Class from Being Inherited in C++?](interview_questions/README.en.md#how-to-prevent-a-class-from-being-inherited-in-c)  \n[C++ Memory Partitions](interview_questions/README.en.md#c-memory-partitions)  \n[Differences Between Heap and Stack](interview_questions/README.en.md#differences-between-heap-and-stack)  \n[How to Detect and Locate Memory Leaks?](interview_questions/README.en.md#how-to-detect-and-locate-memory-leaks)  \n[What Are Wild Pointers and Dangling Pointers? How to Avoid Them?](interview_questions/README.en.md#what-are-wild-pointers-and-dangling-pointers-how-to-avoid-them)  \n[RAII Principle](interview_questions/README.en.md#raii-principle)  \n[What Smart Pointers Do You Know?](interview_questions/README.en.md#what-smart-pointers-do-you-know)  \n[Implementation Principle of `shared_ptr`? How to Solve Circular References?](interview_questions/README.en.md#implementation-principle-of-shared_ptr-how-to-solve-circular-references)  \n[Can `unique_ptr` Be Copied?](interview_questions/README.en.md#can-unique_ptr-be-copied)  \n[Principle of `weak_ptr` in Solving Circular References](interview_questions/README.en.md#principle-of-weak_ptr-in-solving-circular-references)  \n[Memory Alignment Rules](interview_questions/README.en.md#memory-alignment-rules)  \n[Underlying Implementation and Expansion Mechanism of `vector`](interview_questions/README.en.md#underlying-implementation-and-expansion-mechanism-of-vector)  \n[What Are the Scenarios of Iterator Invalidation?](interview_questions/README.en.md#what-are-the-scenarios-of-iterator-invalidation)  \n[Differences Between `map` and `unordered_map`? When to Use Which?](interview_questions/README.en.md#differences-between-map-and-unordered_map-when-to-use-which)  \n[How to Resolve Hash Collisions in `unordered_map`?](interview_questions/README.en.md#how-to-resolve-hash-collisions-in-unordered_map)  \n[Underlying Implementation of `set` and `map`](interview_questions/README.en.md#underlying-implementation-of-set-and-map)  \n[Differences Between `emplace_back` and `push_back`](interview_questions/README.en.md#differences-between-emplace_back-and-push_back)  \n[Common STL Algorithms](interview_questions/README.en.md#common-stl-algorithms)  \n[Differences Between `list` and `vector`](interview_questions/README.en.md#differences-between-list-and-vector)  \n[Six Major Components of STL](interview_questions/README.en.md#six-major-components-of-stl)  \n[Differences Between Red-Black Trees and AVL Trees](interview_questions/README.en.md#differences-between-red-black-trees-and-avl-trees)  \n[Several Most Important New Features of C++11](interview_questions/README.en.md#several-most-important-new-features-of-c11)  \n[Move Semantics and Perfect Forwarding](interview_questions/README.en.md#move-semantics-and-perfect-forwarding)  \n[The Role of `std::move`](interview_questions/README.en.md#the-role-of-stdmove)  \n[The Role of `std::forward`](interview_questions/README.en.md#the-role-of-stdforward)  \n[Underlying Implementation of Lambda Expressions](interview_questions/README.en.md#underlying-implementation-of-lambda-expressions)  \n[The Role of `noexcept`](interview_questions/README.en.md#the-role-of-noexcept)  \n[Differences Between `auto` and `decltype`](interview_questions/README.en.md#differences-between-auto-and-decltype)  \n[Differences Between Rvalue References and Lvalue References](interview_questions/README.en.md#differences-between-rvalue-references-and-lvalue-references)  \n[Implementation Principle of `std::atomic`? Is `a++` an Atomic Operation?](interview_questions/README.en.md#implementation-principle-of-stdatomic-is-a-an-atomic-operation)  \n[Four Conditions for Deadlock? How to Avoid It?](interview_questions/README.en.md#four-conditions-for-deadlock-how-to-avoid-it)  \n[How to Write a Thread-Safe Singleton?](interview_questions/README.en.md#how-to-write-a-thread-safe-singleton)  \n[How to Use `mutex` and `condition_variable` Together?](interview_questions/README.en.md#how-to-use-mutex-and-condition_variable-together)  \n[What Are the Thread Synchronization Methods?](interview_questions/README.en.md#what-are-the-thread-synchronization-methods)  \n[Differences Between Processes and Threads](interview_questions/README.en.md#differences-between-processes-and-threads)  \n[Differences Between TCP and UDP? Application Scenarios?](interview_questions/README.en.md#differences-between-tcp-and-udp-application-scenarios)  \n[Differences and Principles of `select`, `poll`, and `epoll`](interview_questions/README.en.md#differences-and-principles-of-select-poll-and-epoll)  \n[What Are Sticky Packets and Packet Fragmentation? How to Solve Them?](interview_questions/README.en.md#what-are-sticky-packets-and-packet-fragmentation-how-to-solve-them)  \n[TCP Three-Way Handshake and Four-Way Wave](interview_questions/README.en.md#tcp-three-way-handshake-and-four-way-wave)  \n[Implement a Thread-Safe Singleton](interview_questions/README.en.md#implement-a-thread-safe-singleton)  \n[Implement LRU Cache](interview_questions/README.en.md#implement-lru-cache)  \n[Implement Quicksort](interview_questions/README.en.md#implement-quicksort)  \n[Implement Mergesort](interview_questions/README.en.md#implement-mergesort)  \n[Implement String Reversal](interview_questions/README.en.md#implement-string-reversal)  \n[Implement Two Sum](interview_questions/README.en.md#implement-two-sum)\n\n## LeetCode Problems\n- [LeetCode 1 Two Sum](https://leetcode.com/problems/two-sum/)\n- [LeetCode 2 Add Two Numbers](https://leetcode.com/problems/add-two-numbers/)\n- [LeetCode 3 Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)\n- [LeetCode 4 Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/)\n- [LeetCode 5 Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/)\n- [LeetCode 10 Regular Expression Matching](https://leetcode.com/problems/regular-expression-matching/)\n- [LeetCode 11 Container With Most Water](https://leetcode.com/problems/container-with-most-water/)\n- [LeetCode 15 3Sum](https://leetcode.com/problems/3sum/)\n- [LeetCode 17 Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)\n- [LeetCode 19 Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/)\n- [LeetCode 20 Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)\n- [LeetCode 21 Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/)\n- [LeetCode 22 Generate Parentheses](https://leetcode.com/problems/generate-parentheses/)\n- [LeetCode 23 Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/)\n- [LeetCode 31 Next Permutation](https://leetcode.com/problems/next-permutation/)\n- [LeetCode 32 Longest Valid Parentheses](https://leetcode.com/problems/longest-valid-parentheses/)\n- [LeetCode 33 Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/)\n- [LeetCode 34 Find First and Last Position of Element in Sorted Array](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/)\n- [LeetCode 39 Combination Sum](https://leetcode.com/problems/combination-sum/)\n- [LeetCode 42 Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/)\n- [LeetCode 46 Permutations](https://leetcode.com/problems/permutations/)\n- [LeetCode 48 Rotate Image](https://leetcode.com/problems/rotate-image/)\n- [LeetCode 49 Group Anagrams](https://leetcode.com/problems/group-anagrams/)\n- [LeetCode 53 Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)\n- [LeetCode 55 Jump Game](https://leetcode.com/problems/jump-game/)\n- [LeetCode 56 Merge Intervals](https://leetcode.com/problems/merge-intervals/)\n- [LeetCode 62 Unique Paths](https://leetcode.com/problems/unique-paths/)\n- [LeetCode 64 Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/)\n- [LeetCode 70 Climbing Stairs](https://leetcode.com/problems/climbing-stairs/)\n- [LeetCode 72 Edit Distance](https://leetcode.com/problems/edit-distance/)\n- [LeetCode 75 Sort Colors](https://leetcode.com/problems/sort-colors/)\n- [LeetCode 76 Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)\n- [LeetCode 78 Subsets](https://leetcode.com/problems/subsets/)\n- [LeetCode 79 Word Search](https://leetcode.com/problems/word-search/)\n- [LeetCode 84 Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/)\n- [LeetCode 85 Maximal Rectangle](https://leetcode.com/problems/maximal-rectangle/)\n- [LeetCode 94 Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/)\n- [LeetCode 96 Unique Binary Search Trees](https://leetcode.com/problems/unique-binary-search-trees/)\n- [LeetCode 98 Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/)\n- [LeetCode 101 Symmetric Tree](https://leetcode.com/problems/symmetric-tree/)\n- [LeetCode 102 Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/)\n- [LeetCode 104 Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/)\n- [LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)\n- [LeetCode 114 Flatten Binary Tree to Linked List](https://leetcode.com/problems/flatten-binary-tree-to-linked-list/)\n- [LeetCode 121 Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/)\n- [LeetCode 124 Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/)\n- [LeetCode 128 Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/)\n- [LeetCode 136 Single Number](https://leetcode.com/problems/single-number/)\n- [LeetCode 139 Word Break](https://leetcode.com/problems/word-break/)\n- [LeetCode 141 Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/)\n- [LeetCode 142 Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii/)\n- [LeetCode 146 LRU Cache](https://leetcode.com/problems/lru-cache/)\n- [LeetCode 148 Sort List](https://leetcode.com/problems/sort-list/)\n- [LeetCode 152 Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/)\n- [LeetCode 155 Min Stack](https://leetcode.com/problems/min-stack/)\n- [LeetCode 160 Intersection of Two Linked Lists](https://leetcode.com/problems/intersection-of-two-linked-lists/)\n- [LeetCode 169 Majority Element](https://leetcode.com/problems/majority-element/)\n- [LeetCode 198 House Robber](https://leetcode.com/problems/house-robber/)\n- [LeetCode 200 Number of Islands](https://leetcode.com/problems/number-of-islands/)\n- [LeetCode 206 Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)\n- [LeetCode 207 Course Schedule](https://leetcode.com/problems/course-schedule/)\n- [LeetCode 208 Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)\n- [LeetCode 215 Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)\n- [LeetCode 221 Maximal Square](https://leetcode.com/problems/maximal-square/)\n- [LeetCode 226 Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)\n- [LeetCode 234 Palindrome Linked List](https://leetcode.com/problems/palindrome-linked-list/)\n- [LeetCode 236 Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/)\n- [LeetCode 238 Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)\n- [LeetCode 239 Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/)\n- [LeetCode 240 Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/)\n- [LeetCode 253 Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii/)\n- [LeetCode 279 Perfect Squares](https://leetcode.com/problems/perfect-squares/)\n- [LeetCode 283 Move Zeroes](https://leetcode.com/problems/move-zeroes/)\n- [LeetCode 287 Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/)\n- [LeetCode 297 Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/)\n- [LeetCode 300 Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/)\n- [LeetCode 322 Coin Change](https://leetcode.com/problems/coin-change/)\n- [LeetCode 337 House Robber III](https://leetcode.com/problems/house-robber-iii/)\n- [LeetCode 338 Counting Bits](https://leetcode.com/problems/counting-bits/)\n- [LeetCode 347 Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/)\n- [LeetCode 394 Decode String](https://leetcode.com/problems/decode-string/)\n- [LeetCode 399 Evaluate Division](https://leetcode.com/problems/evaluate-division/)\n- [LeetCode 406 Queue Reconstruction by Height](https://leetcode.com/problems/queue-reconstruction-by-height/)\n- [LeetCode 416 Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/)\n- [LeetCode 437 Path Sum III](https://leetcode.com/problems/path-sum-iii/)\n- [LeetCode 438 Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/)\n- [LeetCode 448 Find All Numbers Disappeared in an Array](https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/)\n- [LeetCode 461 Hamming Distance](https://leetcode.com/problems/hamming-distance/)\n- [LeetCode 494 Target Sum](https://leetcode.com/problems/target-sum/)\n- [LeetCode 538 Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree/)\n- [LeetCode 543 Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/)\n- [LeetCode 560 Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/)\n- [LeetCode 581 Shortest Unsorted Continuous Subarray](https://leetcode.com/problems/shortest-unsorted-continuous-subarray/)\n- [LeetCode 617 Merge Two Binary Trees](https://leetcode.com/problems/merge-two-binary-trees/)\n- [LeetCode 621 Task Scheduler](https://leetcode.com/problems/task-scheduler/)\n- [LeetCode 647 Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/)\n- [LeetCode 739 Daily Temperatures](https://leetcode.com/problems/daily-temperatures/)\n\n## Bjarne Stroustrup's FAQ\n### General\n- [What's so great about classes?](https://www.stroustrup.com/bs_faq.html#class)\n- [What is \"OOP\" and what's so great about it?](https://www.stroustrup.com/bs_faq.html#oop)\n- [What is \"generic programming\" and what's so great about it?](https://www.stroustrup.com/bs_faq.html#generic)\n- [What is C++?](https://www.stroustrup.com/bs_faq.html#what-is)\n- [Why does C++ allow unsafe code?](https://www.stroustrup.com/bs_faq.html#unsafe)\n- [What is \"multiparadigm programming\"?](https://www.stroustrup.com/bs_faq.html#multiparadigm)\n- [Is C++ in decline?](https://www.stroustrup.com/bs_faq.html#decline)\n- [What's being done to improve C++?](https://www.stroustrup.com/bs_faq.html#improve)\n- [Is it true that ...?](https://www.stroustrup.com/bs_faq.html#true)\n\n### Learning C++\n- [What is the best book to learn C++ from?](https://www.stroustrup.com/bs_faq.html#best-book)\n- [How long does it take to learn C++?](https://www.stroustrup.com/bs_faq.html#How-long)\n- [Knowing C is a prerequisite for learning C++, right?](https://www.stroustrup.com/bs_faq.html#prerequisite)\n- [Should I learn a pure OO language before C++ to become a real OO programmer?](https://www.stroustrup.com/bs_faq.html#learn-pure)\n- [How do I start learning C++?](https://www.stroustrup.com/bs_faq.html#how-to-start)\n- [Will you help me with my homework?](https://www.stroustrup.com/bs_faq.html#homework)\n- [Where can I get a free C++ compiler?](https://www.stroustrup.com/bs_faq.html#free)\n- [What's the best way to improve my C++ programs?](https://www.stroustrup.com/bs_faq.html#improve-my-C++-programs)\n- [Does it matter which programming language I use?](https://www.stroustrup.com/bs_faq.html#which-programming-language)\n- [Where can I learn about the background of C++?](https://www.stroustrup.com/bs_faq.html#background)\n\n### Standardization\n- [Did the ANSI/ISO standards committee spoil C++?](https://www.stroustrup.com/bs_faq.html#spoil-C++)\n- [When will we have a C++ standard?](https://www.stroustrup.com/bs_faq.html#When-standard)\n- [Where can I get a machine-readable version of the standard?](https://www.stroustrup.com/bs_faq.html#machine-readable-standard)\n- [Are there any features you'd like to remove from C++?](https://www.stroustrup.com/bs_faq.html#remove-from-C++)\n- [Why doesn't C++ have garbage collection?](https://www.stroustrup.com/bs_faq.html#garbage-collection)\n- [Why doesn't C++ have a GUI?](https://www.stroustrup.com/bs_faq.html#gui)\n- [Why doesn't C++ support threads?](https://www.stroustrup.com/bs_faq.html#threads)\n- [What is the difference between C++98 and C++14?](https://www.stroustrup.com/bs_faq.html#C++03)\n- [What will the next standard look like?](https://www.stroustrup.com/bs_faq.html#When-next-standard)\n\n### Books\n- [When will you publish a 4th edition of \"The C++ Programming Language\"?](https://www.stroustrup.com/bs_faq.html#4th)\n- [Do you like e-books?](https://www.stroustrup.com/bs_faq.html#e-books)\n- [Where do I find free machine-readable copies of your books?](https://www.stroustrup.com/bs_faq.html#machinereadable)\n- [What's the difference between the \"TC++PL\" and \"Programming\" books?](https://www.stroustrup.com/bs_faq.html#3rd-programming)\n\n### Other languages\n- [Is Java the language you would have designed if you didn't have to be compatible with C?](https://www.stroustrup.com/bs_faq.html#Java)\n- [What do you think of C#?](https://www.stroustrup.com/bs_faq.html#Csharp)\n- [What do you think of C++/CLI?](https://www.stroustrup.com/bs_faq.html#CppCLI)\n- [What do you think of EC++?](https://www.stroustrup.com/bs_faq.html#EC++)\n- [C++ got its Object-Oriented concepts from Smalltalk?](https://www.stroustrup.com/bs_faq.html#from-Smalltalk)\n- [Do you really recommend Ada over C++ for larger projects?](https://www.stroustrup.com/bs_faq.html#Ada)\n- [Would you compare C++ to \"some language\"?](https://www.stroustrup.com/bs_faq.html#compare)\n- [Others do compare their languages to C++; doesn't that annoy you?](https://www.stroustrup.com/bs_faq.html#Others-do-compare)\n- [You won't compare C++ to other languages, but you write diatribes about C++?](https://www.stroustrup.com/bs_faq.html#diatribes)\n- [How can a legacy language like C++ compete with modern, advanced languages?](https://www.stroustrup.com/bs_faq.html#advanced)\n- [Why are you so keen on portability?](https://www.stroustrup.com/bs_faq.html#portability)\n\n### C and C++\n- [C is better than C++ for small projects, right?](https://www.stroustrup.com/bs_faq.html#C-is-better)\n- [Is C a subset of C++?](https://www.stroustrup.com/bs_faq.html#C-is-subset)\n- [What is the difference between C and C++?](https://www.stroustrup.com/bs_faq.html#difference)\n- [Do you really think that C and C++ could be merged into a single language?](https://www.stroustrup.com/bs_faq.html#merge)\n- [What do you think of C/C++?](https://www.stroustrup.com/bs_faq.html#C-slash)\n- [Why is the code generated for the \"Hello world\" program ten times larger for C++ than for C?](https://www.stroustrup.com/bs_faq.html#Hello-world)\n- [Why did you make C++ (almost) compatible with C?](https://www.stroustrup.com/bs_faq.html#whyC)\n\n### History of C++\n- [When was C++ invented?](https://www.stroustrup.com/bs_faq.html#invention)\n- [Why did you invent C++?](https://www.stroustrup.com/bs_faq.html#why)\n- [Why did AT\u0026T support the development of C++?](https://www.stroustrup.com/bs_faq.html#why-ATT)\n- [Do you own C++?](https://www.stroustrup.com/bs_faq.html#revenues)\n- [Where did the name \"C++\" come from?](https://www.stroustrup.com/bs_faq.html#name)\n- [Which language did you use to write C++?](https://www.stroustrup.com/bs_faq.html#bootstrapping)\n- [Did you really not understand what you were doing?](https://www.stroustrup.com/bs_faq.html#understand)\n\n### Etc. C++ questions\n- [Why is C++ so BIG?](https://www.stroustrup.com/bs_faq.html#big)\n- [Is C++ an Object-Oriented language?](https://www.stroustrup.com/bs_faq.html#Object-Oriented-language)\n- [What is \"legacy code\"?](https://www.stroustrup.com/bs_faq.html#legacy)\n- [Is the number of C++ users still doubling every year?](https://www.stroustrup.com/bs_faq.html#number-of-C++-users)\n- [Does anyone use C++ these days?](https://www.stroustrup.com/bs_faq.html#use-C++)\n- [Why isn't C++ used for Operating Systems?](https://www.stroustrup.com/bs_faq.html#use-C++-for-OS)\n- [What do you think of Boost?](https://www.stroustrup.com/bs_faq.html#boost)\n- [What do you think of template metaprogramming?](https://www.stroustrup.com/bs_faq.html#metaprogramming)\n- [Did you expect C++ to become such a success?](https://www.stroustrup.com/bs_faq.html#C++success)\n- [What's a good certification for C++ programmers?](https://www.stroustrup.com/bs_faq.html#certification)\n- [What C++ compiler do you recommend? Which libraries?](https://www.stroustrup.com/bs_faq.html#recommend)\n- [Are lists evil?](https://www.stroustrup.com/bs_faq.html#list)\n\n### Personal\n- [How do you pronounce \"Bjarne Stroustrup\"?](https://www.stroustrup.com/bs_faq.html#pronounce)\n- [Can I ask you a question?](https://www.stroustrup.com/bs_faq.html#ask)\n- [Why don't you answer your email?](https://www.stroustrup.com/bs_faq.html#email)\n- [Why don't you make your website look modern?](https://www.stroustrup.com/bs_faq.html#looks)\n- [Is \"bjarne\" an impostor?](https://www.stroustrup.com/bs_faq.html#impostor)\n- [You are Swedish?](https://www.stroustrup.com/bs_faq.html#Swedish)\n- [Did you really say that?](https://www.stroustrup.com/bs_faq.html#really-say-that)\n- [Did you really give an interview to IEEE?](https://www.stroustrup.com/bs_faq.html#IEEE)\n- [Why did you go to work at Morgan Stanley?](https://www.stroustrup.com/bs_faq.html#morgan)\n- [Why did you go to work at Texas A\u0026M University?](https://www.stroustrup.com/bs_faq.html#tamu)\n- [Why did you go to work at Bell labs?](https://www.stroustrup.com/bs_faq.html#btl)\n- [What are you working on now?](https://www.stroustrup.com/bs_faq.html#working-on-now)\n\n## Resource Declaration\n\nThis repository is created solely for personal learning, organization, and non-commercial sharing purposes. All materials, links, and code snippets collected herein are sourced from publicly available resources on the Internet.\n\nAll resources are intended **exclusively for study and exchange** and must not be used for any commercial purposes.\n\nCopyright of all content remains with the original authors or respective platforms. The maintainer of this repository claims no ownership or copyright over the included materials.\n\nIf any original author or copyright holder believes that a link or resource has been included inappropriately, please contact me via GitHub Issues or email. I will remove the relevant content or links immediately upon notification.\n\nSpecial thanks to all the generous contributors and authors across the Internet — it is because of your openly shared knowledge that more people can learn C++ efficiently and at low cost!\n","created_at":"2026-01-02T00:00:37.134Z","updated_at":"2026-04-13T21:00:43.703Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Recommended Resources","Tools","Application Fields","LeetCode Problems","Bjarne Stroustrup's FAQ","Real-World Projects","Learning Roadmap","Uncategorized","Table of Contents"],"sub_categories":["Websites","Development Helpers","Integrated Development Environments (IDEs)","Build Systems","Compilers","Documentation \u0026 Visualization","Debuggers \u0026 Performance Profiling","Package Managers","Code Formatting \u0026 Refactoring","Static Analysis \u0026 Testing","Distributed Systems","General","Desktop Application Development","Embedded Development","Backend / Server Development","Data Processing \u0026 Storage","Systems Programming / Kernel","Security","Audio/Video \u0026 Streaming","AI / Machine Learning","Game Development","Stage 4: Systems Programming (4–6 weeks)","Memory \u0026 Performance Tools","Uncategorized","Stage 0: Preparation (0.5–1 day)","Stage 1: Fundamentals (2–3 weeks)","Stage 2: Core OOP (3–4 weeks)","Stage 3: Modern C++ \u0026 STL (2–3 weeks)","Free Electronic Book / PDF"],"projects_url":"https://awesome.ecosyste.ms/api/v1/lists/0voice%2Fcpp-learning-2025/projects"}