- 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.
Sinds de C++ 98 standaard bleef het lange tijd stil, maar sinds C++11 maakt C++ de laatste jaren een gestage ontwikkeling door met de releases van C++14, C++17 en C++20.
De cursus gaat van start met een overzicht van een aantal nieuwe features in C++11 zoals type inference, uniform initialization, lambda functions en strongly typed enums.
Vervolgens wordt ingegaan op de nieuwe Rvalue reference types in C++11 waardoor move constructors in plaats van copy constructors mogelijk worden. Ook wordt daarbij de Golden Rule of 5 voor classes met pointer members besproken.
Een belangrijke toevoeging aan de C++ standaard die met C++11 is geïntroduceerd zijn de smart pointers. Deze zijn van belang bij het voorkomen van memory leaks en zowel unique, shared en weak smart pointers komen aan de orde.
Verder is er aandacht voor multiple threads die sinds C++11 onderdeel zijn van de C++ standaard. Met threads kunnen C++ applicaties geparallelliseerd worden en optimaal gebruik maken van multiple cores. Ook de synchronisatie van threads door locking mechanismen als mutexes en condition variables zijn onderdeel van het cursus programma.
De nieuwe features van C++14 waaronder generalized lambda captures, return type deduction, shared mutexes en shared locking komen vervolgens aan bod.
Tenslotte is er aandacht voor wijzigingen en toevoegingen aan de standaard die gekomen zijn met de release van C++17 en C++20 zoals folding expressions, optional types en immediate functions.
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 |
Al onze cursussen zijn klassikale cursussen waarbij de cursisten aan de hand van een ervaren trainer met diepgaande materie kennis door de stof worden geleid. Theorie wordt steeds afgewisseld met oefeningen.
We doen ook maatwerk en passen dan de cursusinhoud aan op uw wensen. Op verzoek gaan we ook in op uw praktijkcases.
De cursustijden zijn in pricipe van 9.30 tot 16.30. Maar we zijn hierin flexibel. Soms moeten mensen namelijk kinderen naar de opvang brengen of halen en komen andere tijden hun beter uit. In goed overleg kunnen we dan andere cursustijden afspreken.
Wij zorgen voor de computers waarop de cursus gehouden kan worden. Op deze computer is de voor de cursus benodigde software al geinstalleerd. U hoeft geen laptop mee te nemen om aan de cursus te kunnen deelnemen. Als u liever op uw eigen laptop werkt kunt u hem desgewenst meenemen. De benodigde software wordt dan aan het begin van de cursus geinstalleerd.
Onze cursussen worden over het algemeen gegeven met Open Source software zoals Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda en Netbeans. Het digitale cursusmateriaal krijgt u na de cursus mee naar huis.
De cursus is inclusief lunch die we in een restaurantje op loopafstand van het cursuslokaal gebruiken.
De cursussen worden op diverse plaatsen in het land gepland. Een cursus gaat op een locatie door als er zich minimaal 3 mensen voor die locatie inschrijven. Als er inschrijvingen voor verschillende locaties zijn gaat de cursus door op onze hoofdlocatie is Houten net onder Utrecht. Een cursus op onze hoofdlocatie gaat ook door bij 2 inschrijvingen en regelmatig ook bij 1 inschrijving. Overigens doen we ook cursussen op de locatie van de klant als men daar prijs op stelt.
Na afloop van iedere cursus worden de deelnemers verzocht de cursus te evalueren ten aanzien van cursusinhoud, cursusmateriaal, trainer en locatie. Het evaluatie formulier staat op https://www.klantenvertellen.nl/reviews/1039545/spiraltrain. De evaluaties van voorgaande deelnemers en voorgaande cursussen kunnen daar ook worden teruggevonden.
De intellectuele eigendomsrechten van de gepubliceerde cursus inhoud, ook wel aangeduid als infosheet, behoren toe aan SpiralTrain. Het is niet toegestaan de cursusinformatie, de infosheet, te publiceren in schiftelijke dan wel digitale vorm zonder de uitdrukkelijke toestemming van SpiralTrain. Onder de cursus inhoud dient te worden verstaan de beschrijving van de cursus inhoud in zinnen alsmede de indeling van de cursus in modules en onderwerpen in de modules.