{"id":21112158,"url":"https://github.com/rutura/cpp23m","last_synced_at":"2025-07-15T07:16:04.357Z","repository":{"id":263567727,"uuid":"890202345","full_name":"rutura/cpp23m","owner":"rutura","description":"Master Modern C++ with Real Projects   Learn C++23 the professional way with real-world projects, modern tools like CMake and vcpkg, and industry-standard practices. Perfect for beginners, students, and professionals aiming to write future-proof, high-performance C++ code.","archived":false,"fork":false,"pushed_at":"2025-04-21T10:24:52.000Z","size":988,"stargazers_count":29,"open_issues_count":7,"forks_count":19,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T11:37:04.690Z","etag":null,"topics":["cmake","cpp","cpp11","cpp14","cpp17","cpp20","cpp23","vcpkg"],"latest_commit_sha":null,"homepage":"https://www.udemy.com/course/cpp23-fundamentals-projects-algorithms/?couponCode=ENDMARCH2025","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rutura.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-18T07:01:21.000Z","updated_at":"2025-04-21T10:24:55.000Z","dependencies_parsed_at":"2024-11-19T09:19:29.084Z","dependency_job_id":"8d77c1cd-09e4-4418-a94e-ebe3f7f371aa","html_url":"https://github.com/rutura/cpp23m","commit_stats":null,"previous_names":["rutura/cpp23m"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rutura%2Fcpp23m","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rutura%2Fcpp23m/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rutura%2Fcpp23m/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rutura%2Fcpp23m/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rutura","download_url":"https://codeload.github.com/rutura/cpp23m/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252643134,"owners_count":21781444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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"}},"keywords":["cmake","cpp","cpp11","cpp14","cpp17","cpp20","cpp23","vcpkg"],"created_at":"2024-11-20T01:26:51.466Z","updated_at":"2025-05-06T07:51:54.320Z","avatar_url":"https://github.com/rutura.png","language":"C++","readme":"# C++23 Fundamentals with Projects \u0026 Algorithms\n\n\u003e **Stop learning C++ the wrong way.** Master it like professionals do - with real projects, modern tools, and industry practices.\n\nThis repository contains the complete source code and projects for the comprehensive C++23 Fundamentals course available on [Udemy](https://www.udemy.com/course/cpp23-fundamentals-projects-algorithms/?couponCode=ENDMARCH2025).\n\n## 🚀 Why This is the ONLY C++ Course You Need\n\nDon't waste time with outdated tutorials and toy examples. This course teaches C++ the way it's actually used in industry:\n\n- **Real-World Projects**, Not Toy Examples\n- **Professional Tools** Used in Industry\n- **Modern C++ Features** (C++11 through C++23)\n- **Industry-Standard Practices**\n- **Comprehensive Project Structure**\n\n## 🎯 What Sets This Course Apart\n\n### 💪 Beyond Basic Tutorials\n- Build **structured, multi-file projects** from day one\n- Learn **professional development workflows** used in industry\n- Master **modern build systems** and package management\n- Deep dive into **debugging** and much more! \n\n### 🛠️ Professional Tool Stack\n- **Modern CMake** for build management\n- **vcpkg** for package management\n- **Industry-standard debugging** tools\n- **Third-party library** integration\n- **Complete IDE setup** and optimization\n\n## 📚 What You'll Master\n\n### 1. Complete C++ Evolution\n- Master features from C++11 through C++23\n- Work with and improve legacy codebases\n- Write future-proof, modern C++ code\n- Understand the \"why\" behind each feature\n\n### 2. Professional Development\n- Build systems with Modern CMake\n- Package management with vcpkg\n- Debugging workflows\n- Code organization and best practices\n\n### 3. Real-World Applications\n- GUI development with SFML/ftxui\n- Modern file handling with std::filesystem\n- Game development fundamentals\n- Data structures and algorithms\n\n### 4. Advanced Concepts\n- Smart pointers and RAII\n- Move semantics optimization\n- Memory management\n- STL containers and algorithms\n\n## 🎯 Perfect For\n\n- **Complete Beginners** wanting to learn C++ the right way\n- **Self-Taught Developers** struggling with best practices\n- **Students \u0026 CS Majors** seeking practical skills\n- **Professional Developers** from Python/Java/C#\n- **Game Developers** needing C++ expertise\n- **Systems Programmers** requiring performance\n- **Anyone Serious** about professional C++ development\n\n## 💼 Industry-Ready Skills\n\nLearn what employers actually need:\n- ✅ Modern C++ (C++11 through C++23)\n- ✅ Professional build systems\n- ✅ Package management\n- ✅ Real project structure\n- ✅ Debugging techniques\n- ✅ Best practices \u0026 patterns\n\n## 📊 Course Stats\n\n- ⭐ 4.8/5 Rating\n- 📚 60.5 hours of content\n- 🎯 103 comprehensive lectures\n- 💻 18 hands-on exercises\n- 🏆 Certificate of completion\n- 📱 Mobile \u0026 TV access\n- 🔄 Lifetime updates\n\n\u003e \"Not just another C++ course—it's your complete pathway to professional C++ development.\"\n\n## Getting Started\n\nFollow our comprehensive environment setup guide below to get started with modern C++ development across any platform.\n\n# C++23 Masterclass Development Environment Setup\n\nQuick Setup Links:\n- [Windows Setup Guide](#windows-setup)\n- [Linux Setup Guide](#linux-setup-ubuntu-2404)\n- [macOS Setup Guide](#macos-setup)\n- [Docker Setup Guide](#docker-setup-alternative-for-any-platform) (Recommended for consistent environment)\n\nThis guide explains how to set up your development environment for the C++23 Masterclass course across different platforms.\n\n\u003e 🐳 **Why Docker?** Using Docker provides a consistent, pre-configured environment that works identically across all platforms. It eliminates \"works on my machine\" issues and gives you instant access to the latest C++ tools without complex setup. Perfect for both beginners and professionals!\n\n## Common Requirements\n\nAll platforms require these core tools:\n- CMake (3.28.0 or higher)\n- Ninja build system\n- Git\n- vcpkg package manager\n- Visual Studio Code with extensions:\n  - C++ extensions (either Microsoft C++ or Clangd + CodeLLDB)\n  - CMake Tools\n  - CMake\n  - Docker (optional)\n  - Dev Containers (optional)\n\n## Windows Setup\n\n1. **Install Visual Studio 2022**\n   - Download from [Visual Studio Website](https://visualstudio.microsoft.com/downloads/)\n   - Select \"Desktop development with C++\" workload\n   - This provides the MSVC compiler (cl.exe)\n\n2. **Install CMake**\n   - Download latest version from [CMake's official site](https://cmake.org/download/)\n   - Ensure CMake is added to system PATH during installation\n   - Verify with `cmake --version`\n\n3. **Install Ninja**\n   - Download via [WinLibs](https://winlibs.com/)\n   - Add Ninja to system PATH\n   - Verify with `ninja --version`\n\n4. **Install Git**\n   - Download from [Git's official site](https://git-scm.com/)\n   - Add to system PATH during installation\n   - Configure user name and email\n\n5. **Install vcpkg**\n   ```powershell\n   git clone https://github.com/microsoft/vcpkg.git C:\\vcpkg\n   cd C:\\vcpkg\n   .\\bootstrap-vcpkg.bat\n   ```\n   - Set VCPKG_ROOT environment variable to C:\\vcpkg\n\n## Linux Setup (Ubuntu 24.04)\n\n1. **Install Clang 19**\n   ```bash\n   wget https://apt.llvm.org/llvm.sh\n   chmod +x llvm.sh\n   sudo ./llvm.sh 19 all\n   ```\n   Configure as default compiler:\n   ```bash\n   sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-19 100\n   sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-19 100\n   ```\n\n2. **Install CMake**\n   ```bash\n   # Download and install latest CMake\n   wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-linux-x86_64.sh\n   chmod +x cmake-3.31.6-linux-x86_64.sh\n   sudo ./cmake-3.31.6-linux-x86_64.sh --prefix=/opt/cmake-3.31.6 --skip-license\n   sudo update-alternatives --install /usr/bin/cmake cmake /opt/cmake-3.31.6/bin/cmake 100\n   ```\n\n3. **Install Ninja**\n   ```bash\n   sudo apt-get update\n   sudo apt-get install wget unzip\n   wget https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux.zip\n   unzip ninja-linux.zip\n   sudo mv ninja /usr/bin/ninja\n   sudo chmod +x /usr/bin/ninja\n   ```\n\n4. **Install vcpkg**\n   ```bash\n   git clone https://github.com/microsoft/vcpkg.git ~/vcpkg\n   cd ~/vcpkg\n   ./bootstrap-vcpkg.sh\n   ```\n   Add to ~/.bashrc:\n   ```bash\n   export VCPKG_ROOT=~/vcpkg\n   export PATH=$VCPKG_ROOT:$PATH\n   ```\n\n## macOS Setup\n\n1. **Install Xcode Command Line Tools**\n   ```bash\n   xcode-select --install\n   ```\n\n2. **Install CMake**\n   - Download from [CMake's official site](https://cmake.org/download/)\n   - Install the .dmg file\n\n3. **Install Ninja**\n   ```bash\n   brew install ninja\n   ```\n\n4. **Install vcpkg**\n   ```bash\n   git clone https://github.com/microsoft/vcpkg.git ~/vcpkg\n   cd ~/vcpkg\n   ./bootstrap-vcpkg.sh\n   ```\n   Add to ~/.zshrc:\n   ```bash\n   export VCPKG_ROOT=\"$HOME/vcpkg\"\n   export PATH=\"$HOME/vcpkg:$PATH\"\n   ```\n\n## Docker Setup (Alternative for any platform)\n\nIf you prefer a containerized environment or need access to the latest C++ features:\n\n1. **Install Docker**\n   - Windows/Mac: Install Docker Desktop\n   - Linux: Install via package manager\n   ```bash\n   sudo apt install docker    # Ubuntu\n   sudo dnf install docker   # Fedora\n   sudo pacman -S docker    # Arch\n   ```\n\n2. **Pull and Run Container**\n   ```bash\n   docker pull dgakwaya/gcc-clang:latest\n   docker run -it --name cpp_dev -v \u003cpath_to_code\u003e:/workspace dgakwaya/gcc-clang:latest\n   ```\n\n   The container includes:\n   - GCC 14.2.0\n   - Clang 19.1.7\n   - CMake 3.31.6\n   - Ninja 1.12.1\n   - vcpkg\n   - GDB 13.1 and LLDB 19.1.7\n\n3. **Connect VS Code**\n   - Install Remote-Containers extension\n   - Click green button in bottom-left corner\n   - Select \"Attach to Running Container\"\n   - Choose cpp_dev container\n   - Open /workspace in the container\n\n## Verification\n\nAfter installation, verify your setup:\n```bash\n# Windows\ncl.exe /?\ncmake --version\nninja --version\nvcpkg --version\n\n# Linux/macOS\nclang --version\ncmake --version\nninja --version\nvcpkg --version\n```\n\n## Project Structure\nAll projects in this course follow this basic structure:\n```\nproject/\n  ├── CMakeLists.txt\n  ├── CMakePresets.json\n  ├── main.cpp\n  ├── utilities.ixx (or .h/.cpp for header projects)\n  ├── vcpkg.json\n  └── build/\n```\n\n## Debugging Setup\n\nTo enable debugging in your projects, you'll need to configure a launch.json file in VS Code. The file should point to your project's compiled binary. The default binary paths vary by operating system and compiler. Here are the typical paths (replace \"ProjectName\" with your actual project name):\n\n- Windows (MSVC): `build/cl/Debug/ProjectName.exe`\n- Linux/macOS (Clang): `build/linux-clang/Debug/ProjectName`\n- Docker (Clang): `build/linux-clang/Debug/ProjectName`\n\nDetailed instructions for configuring launch.json are provided in the course videos for each project.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frutura%2Fcpp23m","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frutura%2Fcpp23m","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frutura%2Fcpp23m/lists"}