- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus C++11-14-17-20 leren de deelnemers de nieuwe features die aan de C++ standaard zijn toegevoegd sinds C++11. De taal C++ is niet weg te denken uit de wereld van high performance en embedded software.
In de cursus C++ 11-14-17-20 komen de nieuwste ontwikkelingen van de C++ standaard aan bod. Sinds de introductie van C++11 zijn er belangrijke releases geweest, waaronder C++14, C++17 en C++20, die de taal verder hebben verbeterd en uitgebreid.
Sinds de C++ 98 standaard bleef het lange tijd stil, maar met C++11 en de daaropvolgende versies zijn er veel nieuwe mogelijkheden en verbeteringen geïntroduceerd. Deze cursus biedt een grondige verkenning van deze updates en hun impact op de programmeerpraktijk.
De cursus start met een overzicht van enkele nieuwe features in C++11, zoals type inference, uniform initialization, lambda functions en strongly typed enums. Deze concepten vormen de basis voor de modernisering van C++.
Vervolgens wordt ingegaan op de nieuwe Rvalue reference types in C++11, die het mogelijk maken om move constructors in plaats van copy constructors te gebruiken. Ook de Golden Rule of 5 voor classes met pointer members komt aan bod, wat essentieel is voor goed geheugenbeheer.
Een belangrijke toevoeging aan de C++ standaard met C++11 zijn de smart pointers. Deze helpen bij het voorkomen van memory leaks, en de cursus behandelt zowel unique, shared als weak smart pointers, wat cruciaal is voor moderne C++ ontwikkeling.
Verder is er aandacht voor multiple threads die sinds C++11 onderdeel zijn van de C++ standaard. Met threads kunnen C++ applicaties worden geparallelliseerd, wat leidt tot een betere benutting van meerdere cores. Ook de synchronisatie van threads via locking mechanismen zoals mutexes en condition variables is een belangrijk onderdeel van het cursusprogramma.
De nieuwe features van C++14, waaronder generalized lambda captures, return type deduction, shared mutexes en shared locking, komen vervolgens aan bod. Deze uitbreidingen maken het werken met C++ nog efficiënter en flexibeler.
Tenslotte besteden we aandacht aan wijzigingen en toevoegingen aan de standaard die zijn geïntroduceerd met C++17 en C++20, zoals folding expressions, optional types en immediate functions. Deze nieuwe mogelijkheden zijn essentieel voor het optimaliseren van C++ code.
Voor meer informatie over C++ en zijn toepassingen, bezoek de officiële C++ documentatie. Daarnaast kan de C++ Programmeren cursus u helpen om uw vaardigheden verder te ontwikkelen.
De cursus C++ 11-14-17-20 is bedoeld voor C++ developers die de nieuwe features van de C++ 11, 14, 17 en 20 standaarden willen leren kennen.
Om aan deze cursus te kunnen deelnemen is kennis van en ervaring met programmeren in C++ vereist.
De theorie wordt behandeld aan de hand van presentatie slides en wordt afgewisseld met oefeningen. Illustratieve demo's worden gebruikt om de behandelde begrippen te verduidelijken. De cursus tijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de training een officieel certificaat C++ 11-14-17-20.
Module 1 : C++ 11 Intro |
Module 2 : Move Semantics |
Module 3 : Smart Pointers |
|
C++11 Features Type Inference Auto and decltype Uniform Initialization Initializer Lists Range Based for Loop Null Pointer Constant Standard Types constexpr Keyword Static Asserts Lambda Functions Strongly Types Enums User Defined Literals Raw String Literals |
Lvalues and Rvalues in C++ Reference to Constant Passing References References as Return Values Rvalue References Rvalue Reference Usage Assignment Operator Copy Constructor Passing and Returning Objects Passing References to Objects Move Constructor Move Semantics Move Assignment Operator Golden Rule of 5 |
unique_ptr Using unique_ptr Specialization for Arrays Replacement for std::auto_ptr std::make_unique shared _ptr Pointer Control Block shared_ptr Destruction Policy shared_ptr Interface Cyclic References std::enable_shared_from_this weak_ptr default Keyword delete Keyword |
Module 4 : Multiple Threads |
Module 5 : Synchronization |
Module 6 : C++ 14 |
|
Multiple Threads Benefits and Drawbacks Thread Characteristics Thread Class Simple Threads Joining Threads Detaching Threads Thread ID Callables Passing Parameters Pass by Reference Pass by std::ref and std::move Member Function as Thread Thread Local Storage |
Data Corruption Lock Guard Automatic Lock Management Mutex and RAII Recursive Locking Timed Locking Atomic Types Call Once Event Handling Condition Variables Wait and Notify Promises and Futures Asynchronous Tasks Working with async |
Binary Literals Generic Lambda Expressions Generalized Lambda Captures Lambda Capture Initializers Return type Deduction decltype(auto) Constraints constexpr Functions Variable Templates [[deprecated]] Attribute Digit Separators Shared Mutexes Shared Locking Tuple Addressing via Type std::is_final |
Module 7 : C++ 17 |
Module 8 : C++ 20 |
|
|
Folding Expressions constexpr Lambda const if Expressions Init-statement for if Inline Variables Nested Namespaces Structured Bindings Selection Initialization UTF-8 Character Literals Initialization of Enums fallthrough and nodiscard Guaranteed Copy Elision Optional Types |
Concepts Library Designated Initializers likely and unlikely Attributes Immediate Functions constexpr Virtual Functions Explicit Bool Template Syntax Lambdas Math Constants Synchronized Outputstreams std::is_constant_evaluated std::span std::bit_cast std::midpoint |