Skip to content

NexusReflex/ModernCppExercises

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern C++ Practice Circuit

This repository contains a series of 10 independent small coding exercises designed to practice the content of the Modern C++ Bootcamp. Each project focuses on a specific pillar of the C++11 through C++23 standards.

🛠 Tools & Requirements

  • Compiler: GCC 11+, Clang 13+, or MSVC 2022+ (Support for C++20/23 required).
  • Standard: C++20/C++23.
  • Key Focus: RAII, Move Semantics, Type Safety, Templates, and Concurrency.

📚 Exercise Roadmap & Progress

# Exercise Core Concepts Status
01 Smart Resource Manager unique_ptr, RAII, Rule of 5/0 ✅ Done
02 Functional Event Dispatcher Lambdas, <algorithm>, std::function
03 Thread-Safe Log Queue Mutex, lock_guard, Concurrency ✅ Done
04 Type-Safe Visitor std::variant, std::visit ⏳ Pending
05 The Generic Matrix Templates, static_assert, Operators ⏳ Pending
06 Async Data Fetcher std::future, std::async ⏳ Pending
07 Custom Iterator Iterator Requirements, Range-for ⏳ Pending
08 String View Parser std::string_view, std::optional ⏳ Pending
09 The Numeric Concept C++20 Concepts, requires clauses ⏳ Pending
10 Compile-time Math constexpr, Template Metaprogramming ⏳ Pending

🚀 Compilation & Execution

To compile an exercise manually using G++ (replace 01_SmartPointers with the target directory):

g++ -std=c++20 ./[DirectoryName]/*.cpp -o exercise_output
./exercise_output 

✅ Progress Checklist

  • Exercise 01: Implement Media Library with Smart Pointers and RAII.

  • Exercise 02: Perform data transformations using and Lambdas.

  • Exercise 03: Implement a Producer-Consumer thread-safe queue with Mutexes.

  • Exercise 04: Replace class hierarchies with std::variant and std::visit.

  • Exercise 05: Build a Template Matrix class with operator overloading.

  • Exercise 06: Handle asynchronous data fetching and exception propagation.

  • Exercise 07: Create a custom iterator to support range-based for loops.

  • Exercise 08: Write a non-allocating parser using std::string_view.

  • Exercise 09: Use C++20 Concepts to constrain template parameters.

  • Exercise 10: Implement recursive algorithms using constexpr for compile-time evaluation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors