Structure of C++ Projects
Course Content
0 / 64 completedStructure of C++ Projects
Pimpl Idiom
Organizing Source Files
Improving Compilation Speed
Modules in C++ 2a
Structuring Modules
The Course Overview
A Brief History with C++
On Programming Paradigms
On Development Tools
What Makes a Good Interface
Providing a Good Abstraction
Enforcing the Contract
Passing Things Around
Interface with Style
Application Binary Interface
Class and Structs
Constructors and Destructors
Copy and Move
Designing Class Hierarchies
Dual Hierarchy Example
Managing Memory
Shared Pointer
What Makes a Good Function
Arguments and Return Values
Going Functional
Using Lambdas
Compile-Time Evaluation Using constexpr
When to Use Templates
Instantiating the Template
Specializing the Template
Entering Concepts
Diving into Concepts
In Search of a Perfect Container
Searching and Sorting
Manipulating Data
Enter Ranges
Dive into Ranges
More Range Examples
Data Access Modes
Synchronization with Atomics
Synchronization with Condition Variables
Synchronization with Mutexes
Parallel STL
Thread Pools
Promise and Future
Running Asynchronous Tasks
Task Continuation
Grouping Tasks with Fork Join
Distributing the Work
What Is a Coroutine
Coroutine Mechanics
Coroutine Machinery
Writing Our First Coroutine
Resuming the Coroutine
Scheduling a Coroutine
Coroutines on a Thread Pool
Returning Values
Adding Syntactic Sugar
Implementing Continuations
Putting It All Together
About the Guidelines
Enforcing the Guidelines
General Guidelines