Advanced Projects
Prerequisites: Level 3 — Advanced
Build these using templates, concurrency, and modern C++ from Level 3.
1. Thread Pool
Build a small thread pool class: a fixed number of std::threads pull
tasks (std::function<void()>) from a shared queue, protected by a
std::mutex and std::condition_variable, until told to shut down.
2. Generic Data Structure Library
Write your own template<typename T> class LinkedList and
template<typename T> class Stack, each RAII-managed (no manual
delete needed by callers), with a Catch2 test suite covering edge cases
(empty list, single element, many elements).
3. Simple JSON Parser
Using std::variant to represent a JSON value (string, number, bool,
null, array, object), parse a small subset of JSON text into a tree of
these values, and write a matching function to serialize it back to text.