cppfor2022W50
- https://godbolt.org/z/sc8vG64z3
- Multi-Threading
- DynamischeSpeicherverwaltung
- Smart Pointer
- Regular Expressions
- "New-Style" Casts
- Klassenspezische Typ-Umwandlung
- Templates
- STL-Container und Algorithmen
- Idioms (RAII, NVI, PIMPL)
Multi-Threading Schulung in meinem Unterlagen-Archiv:
- https://tbfe.de/wetrain/G/Cplusplus_Concurrency_Basics_2hours/#1
- User/Pass siehe Hinweis ganz am Ende dieser Seite
Info-Grafiken (hierfür ist kein Kennwort erforderlich):
- https://tbfe.de/data/uploads/infographics allgmein [(CC) BY-SA Copyright]
- https://tbfe.de/data/uploads/infographics/ExceptionBasics.png
- https://tbfe.de/data/uploads/infographics/ExceptionDetails.png
Lambda mit Namen vs. anonyme Lambdas (auch "Funktions-Literale" geannt)
Angabe von Zeitspannen mit std::chrono:
- https://godbolt.org/z/caKqP4onq (Mini-Beispiel im Compiler Explorer)
- https://www.informit.com/articles/article.aspx?p=1881386&seqNum=2 (Auszug Buch von
- https://www.youtube.com/watch?v=tzyGjOm8AKo (Date/Time Library von Howard Hinant)
- https://www.youtube.com/watch?v=-5wpm-gesOY (Problmatik der weltweiten Zeitzonen)
Exceptions:
- https://godbolt.org/z/q4aK7q89h (minimale Programmvorgabe)
- https://godbolt.org/z/3sTbv3734 (zwei verschiedene Exception Klassen)
- https://godbolt.org/z/3sTbv3734 (Übung Intervall-Klasse)
Links zu Online-kompilierbaren Beispielen aus dem Kapitel "C++FOR Exceptions":
- https://godbolt.org/z/A6bg9U (copy-paste EX-15...18)
- https://godbolt.org/z/S4op5a (copy-paste EX-21...24)
- https://godbolt.org/z/ve-bBX (copy-paste EX-25)
- https://godbolt.org/z/m7K92A (copy-paste EX-26)
- https://godbolt.org/z/iYJ4yJ (copy-paste EX-27)
- https://godbolt.org/z/WquFzw (copy-paste EX-30...33)
- https://godbolt.org/z/5rz1jdWhr (Variante mit `std::out_of_range`)
- https://godbolt.org/z/XHtBLn (copy-paste EX-42...44)
- https://godbolt.org/z/mdVmeY (copy-paste EX-42..43+45)
- https://godbolt.org/z/gejU3B (copy-paste EX-42..43+46)
Lesenwerte zum Thema: Wann ist Vererbung sinnvoll und wann nicht?
State-Machine Beispiele aus Schulungsunterlage (Seite BASICS-40...46) und Variationen:
- https://godbolt.org/z/hsrYvb
- https://godbolt.org/z/rsne7M
- https://godbolt.org/z/GYT1hj
- https://godbolt.org/z/PnY9Ks
Native Pointer vs. std::unique_ptr, Copy vs. Move, R-Value-Referenzen
- https://godbolt.org/z/rbzj96GEd // unique_ptr version
- https://godbolt.org/z/K8bzeEsbK // native pointer version
Aufgabe: FlexCounter
Schreiben Sie eine Counter-Klasse angelehnt an die Counter aus dem Repository https://github.com/tbfe-de/Coun[t]Down (das bei dem im Namen momentan das 't' fehlt, die meisten von Ihnen haben es schon heruntergeladen).
- Die prinzpiell wie der ChainCounter (Step-01) aussehen. Die Weitergabe des Übertrags soll allerdings an ein std::function<bool()> erfolgen,
- also eine Funktion OHNE Argumente, die true oder false zurückgibt
- Nur wenn diese Funktion true liefert, soll der Counter auch wieder auf 0 zurückgesetzt werden. Ansonsten soll er auf seinem Grenzwert (limit_) verbleiben.
- Zur Demoinstration, dass alles funktiert, bauen und testen Sie dre unterschiedliche Konfiguration
- eine Zählerkette aus zwei solchen FlexiCountern, z.B. eine Stunden- und Mnuten-Uhr
- einen einzelnen Zähler, der am oberen Anschlag verbleibt
- einen Zähler, der eine Exception wirft, wenn er den obere Anschlag erreicht.
Hinweis zu Username / Passwort:
Ersterer ist das erste Wort im Namen des Restaurants, in dem wir zum Mittagessen sind (alles klein geschrieben); letzteres ist der verbleibende Teil des Restaurantnamens (auch überwiegend in Kleinschreibung, ABER den enthaltenen Buchstaben "a" durch die Nummer (Ziffer) des Stockwerks ersetzen, in dem sich der Kursraum befindet, den direkt folgenden Buchstaben als einzigen groß schreiben und das enthaltene "l" (= kleines "L") durch einen senkrechten Strich ersetzen.