| Code: | adv-modern |
| Category: | C & C++ |
| Format: | 40% wykład / 60% workshop |
| Duration: | 3-6days |
| Target audience: |
developerzy architekci |
| Enrollment: | Groups, companies |
| Venue: | Client's office. |
Training Program
The content of our program can be customised during pre-training analysis.-
C++ Basics for Experts- Advanced approach to C++ basic concepts (identifiers, types and their properties, objects, scope, lifetime, and more)
- Class special member functions undercover
- Object construction and initialization voodoo
- Advanced approach to C++ basic concepts (identifiers, types and their properties, objects, scope, lifetime, and more)
-
Coding with performance in mind- Value categories
- Copy elision
- Move semantics
- Ref-qualifiers
- noexcept
- constexpr
- Source code vs hardware - introduction
- Value categories
-
Utilities that every C++ developer should know and use- Smart pointers
- Lambda expression
- Algorithms and their specializations
- std::string_view
- std::optional
- std::tuple
- std::variant
- Smart pointers
-
Templates demystified- Class, function, variable, and alias templates
- Parameters and arguments
- Explicit and partial specialization
- Explicit and implicit instantiation
- Template argument deduction
- Variadic templates
- Fold-expressions
- Dependent names
- SFINAE
- Class, function, variable, and alias templates
-
Tools mandatory in modern C++ developer’s workshop- cmake
- clang toolset
- gtest/gmock
- Code Coverage
- Google benchmark
- Compiler Explorer
- cmake
-
Design patterns do not end on GoF- Non-Copyable
- RAII
- Copy-and-swap
- Smart Pointer
- Type Traits
- Tag dispatch
- Policy-based design
- EBO
- Type Erasure
- Copy-on-write
- CRTP
- Singleton
- SOO
- Non-Copyable
-
C++ is not only about OOD- Inheritance vs polymorphism
- Pitfalls and how to fight with them
- Value Semantics
- Concept-based Polymorphism
- Inheritance vs polymorphism
-
C++ containers for demanding developers- Finding the right tool for the job (functionality, memory layout, performance/latency)
- Sequence containers
- Associative containers
- Hash tables
- Not only from C++ standard library
- Finding the right tool for the job (functionality, memory layout, performance/latency)
-
Writing stable and secure code- Typical problems of legacy code
- Pitfalls of buggy coding standards
- Class construction and destruction
- Magic numbers everywhere
- Replacing pointers with C++ constructs
- Value objects
- Error handling
- Typical problems of legacy code
Download PDF