C++ 11-14-17-20
Lesgeld
Cursus C++ 11-14-17-20
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.
C++ Standaard
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 gron
Cursus C++ 11-14-17-20
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.
C++ Standaard
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.
C++11 Features
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++.
Rvalue Reference
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.
Smart Pointers
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.
Multiple Threads
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.
C++14 Features
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.
C++17 en C++20 Features
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.
Doelgroep Cursus C++ 11-14-17-20
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.
Voorkennis Cursus C++ 11-14-17-20
Om aan deze cursus te kunnen deelnemen is kennis van en ervaring met programmeren in C++ vereist.
Uitvoering Training C++ 11-14-17-20
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.
Certificering cursus C++ 11-14-17-20
De deelnemers krijgen na het goed doorlopen van de training een officieel certificaat C++ 11-14-17-20.
Modules
Module 1 : C++ 11 Intro
- 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
Module 2 : Move Semantics
- 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
Module 3 : Smart Pointers
- 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
- 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
Module 5 : Synchronization
- 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
Module 6 : C++ 14
- 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
- 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
Module 8 : C++ 20
- 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