Modernes C++: Die wichtigsten Sprachneuerungen von C++11 bis C++20 - Präsenz-Training
Profitieren Sie von den vielen Ergänzungen, die C++ nach dem ISO/ANSI-Standard von 1998 erhielt. Verschaffen Sie sich einen Überblick über die zahlreichen großen, mittleren und kleineren Erweiterungen. In diesem Training können Sie diese in kleinen Demo-Programmen praktisch ausprobieren und deren Verwendung in mittelgroßen Programmen mit praktischem Nutzen vertiefen.
Dieser C++ Kurs richtet sich an erfahrene Software-Entwickler mit guten C++-Kenntnissen, welche ihr Know-how gezielt ausbauen wollen in Bezug auf die mit den ISO-Standards von 2011 und 2014 eingeführten Neuerungen im Bereich der Sprach-Syntax, der Standard-Bibliothek und der Template-Programmierung.
Umfangreiche und durch entsprechende Praxis untermauerte Erfahrungen mit C++98. Hinweis: Dieses Training eignet sich NICHT zur Auffrischung von Grundkenntnissen oder seit längerer Zeit nicht (mehr) praktisch angewandter C++-Kenntnisse.
Dieses Training konzentriert sich auf die Erweiterungen von C++ ab C++11 über C++14, C++17 bis C++20.
Aufgrund der Größe des C++-Standards haben wir für diese Schulung diejenigen Themen ausgewählt, die für die meisten C++-Entwickler/innen erforderlich sind, die dabei helfen, typische Fallstricke zu vermeiden, oder die als Best Practices bekannt sein sollten. Diese werden als "obligatorischer Inhalt" in jedem Fall in dem Training abgedeckt.
In einer zweiten Kategorie ("gruppiert wählbare Inhalte") listen wir unten diejenigen Themenblöcke auf, die je nach individuellen Bedürfnissen der Teilnehmenden priorisiert und für das Training ausgewählt werden können.
Die dritte Kategorie ("einzeln wählbare Inhalte") umfasst kleinere Elemente, zu denen Sie Fragen stellen können bzw. die in kleinen Beispielen - je nach Bedarf - erläutert werden können.
Obligatorischer Inhalt (ca. 2 Tage)
- Lambdas und andere Callables
- RValue- und Forwarding-Referenzen
- Smart-Pointer
- Multithreading
- Metaprogrammierung
Gruppiert wählbare Inhalte (Auswahl von einzelnen Themenblöcken nach Priorisierung durch die Teilnehmenden)
Unterbibliotheken
- std::chrono (C++11)
- std::filesystem (C++17)
- std::format (C++20)
- std::ranges (C++20)
Klassen
- std::array (C++11)
- std::forward_list (C++11)
- std::unordered::[multi]map (C++11)
- std::unordered::[multi]set (C++11)
- std::any (C++17)
- std::byte (C++17)
- std::optional (C++17)
- std::span (C++17)
- std::string_view (C++17)
Features
- Auto type deduction (C++11 ff)
- Attributes (C++11 ff)
- constexpr, constinit, consteval (C++11, C++20)
- Defaulted and deleted functions (C++11)
- Initializer lists (C++11)
- Modern enumerations (C++11, C++17, C++20)
- nullptr (C++11)
- Override and final (C++11)
- Range-based for-loops (C++11)
- User defined literals (C++11, C++14)
- static_assert (C++11, C++14)
- Type aliases with using (C++11)
- Modules (C++20)
- Concepts (C++20)
- Coroutines (C++20)
- Three-way and defaulted comparison (C++20)
Weitere wählbare Inhalte (Beantwortung von Fragen und Veranschaulichung an kleinen Beispielen je nach Interesse der Teilnehmenden)
- Binary literals (C++14)
- bit_operations (C++20)
- Case statement with initializer (C++17)
- Conditional noexcept (C++11)
- Conditional explicit (C++20)
- Shorthand contains for sets and maps (C++20)
- Shorthand starts_with/ends_with for strings (C++20)
- Converting constructors (C++11)
- Delegating constructors (C++11)
- Designated initializers (C++20)
- Direct member initialization (C++11)
- Explicit conversion functions (C++11)
- Inline namespaces (C++11)
- Inline variables (C++17)
- math_constants (C++20)
- Nested namespaces simplified (C++17)
- Noexcept specifier (C++11)
- Range based loop with initializer (C++20)
- Raw string literals (C++11)
- Reference qualified member functions (C++11)
- Right angle bracket conflict resolved (C++11)
- Specified encoding for string literals (C++11)
- Splicing for sets and maps (C++17)
- static_assert (C++11)
- std::all_of, std::any_of, std::none_of (C++11)
- std::bit_cast (C++20)
- std::midpoint (C++20)
- std::minmax (C++14)
- std::to_array (C++20)
- Structured bindings (C++17)
- Synchronized buffered output stream (C++20)
- Trailing return type syntax (C++11)
- utf8 character literals (C++17)