Choose your language
C++ Advanced Course
More than 2 million students worldwide

C++ Advanced Course

Take your C++ expertise to the level that separates senior engineers from the rest. This course covers modern C++20 features, advanced template metaprogramming, lock-free concurrency, and large-scale architecture. You will write faster, safer, and more maintainable systems code from day one.

Dedika for businesses

What you will learn:

You will master C++11 through C++20 features including move semantics, variadic templates, and coroutines. The course teaches you to design custom memory allocators, build lock-free data structures, and apply SIMD intrinsics for maximum throughput. You will implement advanced design patterns such as CRTP, type erasure, and expression templates. Build systems, ABI stability, static analysis, and CI integration are covered so you can contribute to production-grade codebases. You will also explore C++20 ranges, embedded C++ techniques, cross-language interoperability, and security-conscious coding practices.

How you study in practice C++ Advanced Course

How you practice C++ Advanced Course

For companies that want to train their team

With Dedika for Business, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

8 Chapters • 39 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Modern C++ Foundations Review

  • Lesson 1 • Uniform Initialization and Structured Bindings

    Explains brace initialization, initializer lists, and C++17 structured bindings. Reduces common initialization bugs in subsequent chapters.

  • Lesson 2 • Move Semantics and Value Categories

    Explains lvalues, rvalues, and xvalues alongside std::move and std::forward. Enables efficient resource transfer throughout the course.

  • Lesson 3 • Smart Pointers and Ownership

    Covers unique_ptr, shared_ptr, and weak_ptr ownership semantics. Builds the memory-safety foundation required for advanced resource management.

  • Lesson 4 • Lambda Expressions in Depth

    Teaches capture modes, generic lambdas, and mutable lambdas. Prepares students for functional-style algorithms and callbacks.

  • Lesson 5 • Type Inference and Auto Usage

    Covers auto, decltype, and trailing return types with precision. Establishes type-deduction intuition needed for templates later.

Chapter 2See details

Template Metaprogramming Fundamentals

  • Lesson 1 • SFINAE and Enable_if Techniques

    Explains substitution failure, std::enable_if, and void_t idioms. Allows conditional template enablement based on type properties.

  • Lesson 2 • Type Traits and Compile-Time Computation

    Covers the type_traits library and constexpr if for compile-time branching. Students write zero-overhead generic code with static assertions.

  • Lesson 3 • Variadic Templates

    Teaches parameter packs, pack expansion, and fold expressions. Unlocks construction of type-safe heterogeneous containers and utilities.

  • Lesson 4 • Function and Class Template Basics

    Introduces template syntax, instantiation, and argument deduction rules. Provides the vocabulary for all subsequent metaprogramming topics.

  • Lesson 5 • Template Specialization and Overloading

    Covers full and partial specialization plus function template overloading. Enables precise behavior customization for specific types.

Chapter 3See details

Concepts and Constraints in C++20

  • Lesson 1 • Constraining Function and Class Templates

    Applies concepts to function signatures and class templates via requires clauses. Replaces verbose SFINAE with expressive constraints.

  • Lesson 2 • Concept Syntax and Definition

    Introduces the concept keyword, requires expressions, and constraint conjunction. Establishes the new vocabulary for constrained templates.

  • Lesson 3 • Standard Library Concepts

    Surveys concepts in <concepts> and ranges headers including Sortable and Range. Enables idiomatic use of the C++20 standard library.

  • Lesson 4 • Concept Subsumption and Ordering

    Explains how the compiler orders overloads by concept subsumption. Students design concept hierarchies that resolve ambiguity correctly.

Chapter 4See details

Advanced Memory Management

  • Lesson 1 • Memory Pools and Arena Allocation

    Covers pool allocators, arena allocators, and bump-pointer strategies. Reduces fragmentation and allocation latency in hot paths.

  • Lesson 2 • Placement New and Object Lifetime

    Teaches manual object construction in pre-allocated buffers using placement new. Clarifies object lifetime rules to avoid undefined behavior.

  • Lesson 3 • Memory Safety and Sanitizer Tools

    Introduces AddressSanitizer, Valgrind, and undefined-behavior sanitizers. Students detect and fix memory errors systematically.

  • Lesson 4 • Aligned Storage and SIMD Alignment

    Covers alignas, alignof, and std::aligned_storage for hardware-aligned data. Prepares students for SIMD and cache-line optimization.

  • Lesson 5 • Allocator Model and Custom Allocators

    Explains the C++ allocator interface and how containers use it. Students implement custom allocators to control memory sources.

Chapter 5See details

Concurrency and Parallelism

  • Lesson 1 • C++20 Coroutines for Concurrency

    Introduces co_await, co_yield, and coroutine handles for async workflows. Connects coroutine mechanics to practical async I/O patterns.

  • Lesson 2 • Threads, Mutexes, and Condition Variables

    Covers std::thread, mutex variants, and condition_variable for synchronization. Builds practical skills for producer-consumer and guarded-data patterns.

  • Lesson 3 • C++ Memory Model Fundamentals

    Explains the happens-before relation, sequentially consistent ordering, and data races. Provides the theoretical basis for all concurrency work.

  • Lesson 4 • Atomics and Lock-Free Programming

    Teaches std::atomic operations and compare-exchange for lock-free structures. Students implement wait-free counters and lock-free queues.

  • Lesson 5 • Futures, Promises, and Async Tasks

    Covers std::future, std::promise, and std::async for task-based concurrency. Enables clean asynchronous result passing without raw threads.

Chapter 6See details

Performance Optimization Techniques

  • Lesson 1 • Compiler Optimizations and Hints

    Covers inlining, link-time optimization, and likely/unlikely hints. Students guide the compiler to generate faster machine code.

  • Lesson 2 • Reducing Allocations and Copies

    Covers small-buffer optimization, copy elision, and RVO/NRVO guarantees. Students eliminate hidden allocation costs in production code.

  • Lesson 3 • Profiling and Benchmarking Workflow

    Covers perf, gprof, and Google Benchmark for measuring hotspots. Establishes a data-driven optimization methodology used throughout the chapter.

  • Lesson 4 • SIMD Intrinsics and Vectorization

    Introduces auto-vectorization and manual SIMD intrinsics for data parallelism. Enables order-of-magnitude speedups on numeric workloads.

  • Lesson 5 • Cache-Friendly Data Structures

    Explains cache hierarchy, spatial locality, and struct-of-arrays layout. Students redesign data structures to minimize cache misses.

Chapter 7See details

Advanced Design Patterns in C++

  • Lesson 1 • Policy-Based Design

    Teaches the policy class idiom for compile-time behavior injection. Replaces virtual dispatch with zero-cost static polymorphism.

  • Lesson 2 • Compile-Time Reflection Patterns

    Covers manual reflection using type lists, constexpr maps, and X-macros. Prepares students for C++26 reflection when it becomes available.

  • Lesson 3 • Type Erasure Techniques

    Explains std::any, std::function, and custom type-erasure wrappers. Enables runtime polymorphism without inheritance hierarchies.

  • Lesson 4 • Expression Templates

    Introduces expression templates for lazy evaluation and loop fusion. Students build a minimal linear-algebra DSL to apply the pattern.

  • Lesson 5 • CRTP and Static Polymorphism

    Covers the Curiously Recurring Template Pattern for static interfaces. Eliminates virtual call overhead while preserving polymorphic behavior.

Chapter 8See details

Large-Scale C++ Project Architecture

  • Lesson 1 • CMake and Build System Mastery

    Teaches modern CMake targets, generator expressions, and package management. Enables reproducible, cross-platform builds for large projects.

  • Lesson 2 • ABI Stability and Versioning

    Explains ABI breakage causes, the pimpl idiom, and versioned symbol techniques. Students design libraries that remain binary-compatible across releases.

  • Lesson 3 • Static Analysis and Code Quality

    Covers clang-tidy, cppcheck, and sanitizer integration in CI pipelines. Enforces consistent quality gates across large teams.

  • Lesson 4 • C++20 Modules System

    Covers module units, interface partitions, and import declarations. Replaces header-based compilation for faster builds and cleaner dependencies.

  • Lesson 5 • Testing Strategies for C++ Systems

    Introduces Google Test, Google Mock, and property-based testing with RapidCheck. Students build a layered test suite for a complex C++ library.

Certification

Your valid completion certificate

This course is for you:

  • Mid-level C++ developer: ready to move beyond everyday feature work into deeper systems.

  • Game engine programmer: needs low-level performance and concurrency skills for real-time systems.

  • Embedded software engineer: wants modern C++ techniques that fit resource-constrained environments.

  • Backend infrastructure engineer: building high-throughput services where allocation costs matter.

  • Computer science graduate: bridging academic knowledge with production-grade engineering practices.

  • Self-taught C++ hobbyist: has built personal projects and now wants professional-level depth.

What our students say

Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of my interest without needing to switch platforms... I thank you for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can switch chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the presentation style and video transcription, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top trainings

FAQ

Who is Dedika?

Is the certificate valid in the United States?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course