{"product_id":"programming-in-c-version-20","title":"Programming in C++ (version 20)","description":"\u003ch2 class=\"dt-heading-xl\"\u003eModernize Your Engineering DNA with Programming in C++20\u003c\/h2\u003e\n\u003cdiv class=\"dt-body-premium\"\u003e\n    Step into the future of systems programming with our elite C++20 \"Modern C++\" training track. This course isn't just an update; it's a fundamental reimagining of how C++ is written in the 2020s. We move past legacy \"C-with-classes\" habits to embrace the transformative power of C++20’s \"Big Four\": Modules, Concepts, Ranges, and Coroutines. Designed for developers who demand high performance without sacrificing safety or code clarity, this curriculum bridges the gap between low-level hardware control and high-level architectural elegance. You will master the spaceship operator for simplified comparisons, the \u003ccode\u003estd::format\u003c\/code\u003e library for type-safe text processing, and the Ranges library for functional-style data manipulation, all while building a foundation for scalable, industrial-grade software.\n\u003c\/div\u003e\n\n\u003cdiv class=\"dt-grid-v7\"\u003e\n    \u003cdiv class=\"dt-glass-panel-v7\"\u003e\n        \u003ch3 class=\"dt-heading-card\"\u003eWho is this for?\u003c\/h3\u003e\n        \u003cul class=\"dt-list-premium\"\u003e\n            \u003cli\u003e\n\u003cstrong\u003eSystems Engineers\u003c\/strong\u003e looking to upgrade legacy codebases to C++20 standards.\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eGame Developers\u003c\/strong\u003e seeking to leverage high-performance features in modern engines like Unreal.\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eEmbedded Developers\u003c\/strong\u003e needing the safety and efficiency of C++20’s \u003ccode\u003econstexpr\u003c\/code\u003e and \u003ccode\u003espan\u003c\/code\u003e.\u003c\/li\u003e\n            \u003cli\u003e\n\u003cstrong\u003eTechnical Leads\u003c\/strong\u003e aiming to enforce clean code patterns and reduce compilation times using Modules.\u003c\/li\u003e\n        \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dt-glass-panel-v7\"\u003e\n        \u003ch3 class=\"dt-heading-card\"\u003eReady for roles like\u003c\/h3\u003e\n        \u003cul class=\"dt-list-premium\"\u003e\n            \u003cli\u003eSenior C++ Systems Developer\u003c\/li\u003e\n            \u003cli\u003eEmbedded Software Engineer\u003c\/li\u003e\n            \u003cli\u003eGame Engine Programmer\u003c\/li\u003e\n            \u003cli\u003eHigh-Frequency Trading (HFT) Developer\u003c\/li\u003e\n            \u003cli\u003ePerformance Optimization Engineer\u003c\/li\u003e\n        \u003c\/ul\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003ch3 class=\"dt-heading-section\"\u003eCourse Curriculum\u003c\/h3\u003e\n\n\u003cdetails class=\"dt-acc-item-v7\"\u003e\n    \u003csummary\u003eThe Evolution: From Classic to C++20 \u003cspan class=\"dt-acc-toggle\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n    \u003cdiv class=\"dt-acc-content\"\u003e\n        Explore the history of C++ and the paradigm shifts that led to the C++20 standard. Master the modern build process using modules—a massive upgrade from traditional header files that drastically improves compilation speed and code encapsulation.\n    \u003c\/div\u003e\n\u003c\/details\u003e\n\n\u003cdetails class=\"dt-acc-item-v7\"\u003e\n    \u003csummary\u003eType Safety \u0026amp; Constraints with Concepts \u003cspan class=\"dt-acc-toggle\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n    \u003cdiv class=\"dt-acc-content\"\u003e\n        Learn to write expressive, generic code using C++20 Concepts. Replace cryptic template errors with clear, compile-time requirements. You will learn to define and use \u003ccode\u003estd::integral\u003c\/code\u003e, \u003ccode\u003estd::floating_point\u003c\/code\u003e, and custom concepts to ensure your templates are used correctly.\n    \u003c\/div\u003e\n\u003c\/details\u003e\n\n\u003cdetails class=\"dt-acc-item-v7\"\u003e\n    \u003csummary\u003eThe Ranges Library \u0026amp; Functional Paradigms \u003cspan class=\"dt-acc-toggle\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n    \u003cdiv class=\"dt-acc-content\"\u003e\n        Discover how to process collections with the power of Ranges. Learn to use views and adaptors to perform complex transformations on data without unnecessary copying, bringing the expressiveness of Python or Java to the performance of C++.\n    \u003c\/div\u003e\n\u003c\/details\u003e\n\n\u003cdetails class=\"dt-acc-item-v7\"\u003e\n    \u003csummary\u003eAsynchronous Excellence with Coroutines \u003cspan class=\"dt-acc-toggle\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n    \u003cdiv class=\"dt-acc-content\"\u003e\n        Unlock the ability to write asynchronous code that looks like synchronous code. Master \u003ccode\u003eco_await\u003c\/code\u003e, \u003ccode\u003eco_yield\u003c\/code\u003e, and \u003ccode\u003eco_return\u003c\/code\u003e to build efficient, non-blocking applications like high-performance network servers and game logic systems.\n    \u003c\/div\u003e\n\u003c\/details\u003e\n\n\u003cdetails class=\"dt-acc-item-v7\"\u003e\n    \u003csummary\u003eMemory Safety: Smart Pointers \u0026amp; std::span \u003cspan class=\"dt-acc-toggle\"\u003e+\u003c\/span\u003e\u003c\/summary\u003e\n    \u003cdiv class=\"dt-acc-content\"\u003e\n        Eliminate memory leaks and dangling pointers. This module focuses on the modern RAII (Resource Acquisition Is Initialization) pattern, utilizing \u003ccode\u003eunique_ptr\u003c\/code\u003e, \u003ccode\u003eshared_ptr\u003c\/code\u003e, and the new \u003ccode\u003estd::span\u003c\/code\u003e for safe, non-owning views of memory sequences.\n    \u003c\/div\u003e\n\u003c\/details\u003e\n\n\u003ch3 class=\"dt-heading-section\"\u003eFrequently Asked Questions\u003c\/h3\u003e\n\u003cdiv class=\"dt-faq-accordion-v7\"\u003e\n    \u003cdetails class=\"dt-faq-item-v7\"\u003e\n        \u003csummary\u003eDo I need to know older versions of C++ like C++11 or C++14 first?\u003c\/summary\u003e\n        \u003cdiv class=\"dt-faq-answer\"\u003e\n            While basic programming logic is required, this course is designed to teach you the \"modern\" way from the ground up. We briefly cover legacy pitfalls so you can identify them in old code, but our focus is on teaching you the C++20 standards as your primary toolset.\n        \u003c\/div\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"dt-faq-item-v7\"\u003e\n        \u003csummary\u003eWhat tools and compilers will be used in the labs?\u003c\/summary\u003e\n        \u003cdiv class=\"dt-faq-answer\"\u003e\n            The labs utilize the latest versions of GCC, Clang, and MSVC that support full C++20 conformance. You will gain experience with modern IDE features in Visual Studio and VS Code, including module-aware build systems and advanced IntelliSense.\n        \u003c\/div\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"dt-faq-item-v7\"\u003e\n        \u003csummary\u003eHow does C++20 improve compilation times?\u003c\/summary\u003e\n        \u003cdiv class=\"dt-faq-answer\"\u003e\n            The introduction of C++20 Modules is a game-changer. Unlike header files which are copy-pasted into every file that includes them, modules are compiled once into a binary format. This course shows you how to structure your projects to take full advantage of this to achieve significantly faster build cycles.\n        \u003c\/div\u003e\n    \u003c\/details\u003e\n\u003c\/div\u003e","brand":"C++ Institute","offers":[{"title":"Default Title","offer_id":54757068505413,"sku":null,"price":268.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0280\/0350\/0118\/files\/c_14fb1068-e0ba-4ba5-b247-fb80b9e3b574.webp?v=1748029023","url":"https:\/\/www.divitrain.com\/nl\/products\/programming-in-c-version-20","provider":"DiviTrain.com","version":"1.0","type":"link"}