Seminar Modern C++ Style

Ankündigung

Das Seminar wird in Form eines Blockseminars am Ende des Semesters abgehalten. Die Vorbesprechung mit Themenvergabe findet am Freitag, den 16. Oktober 2015 um 16:15 Uhr im Raum O27/531 statt.

Inhalt

Gegenstand dieses Seminars sind die zahlreichen Neuerungen in der Programmiersprache C++ und der C++-Standardbibliothek, zusammengefasst in den Sprachstandards C++11 und C++14. Im Mittelpunkt steht dabei die Frage, wie sich die neuen Mittel richtig einsetzen lassen, um fehlerfreien, ausnahmensicheren, einfach zu wartendenden Code zu schreiben, der zudem leistungsfähiger ist als „konventionelle“, auf dem Sprachstandard von 1998 bzw. 2003 basierende C++-Programme.

Von besonderem Interesse sind dabei neue Programmieridiome, die sich aus diesen Änderungen ergeben. Bisherige C++-Idiome bedürfen zum Teil einer Korrektur oder sind vielleicht schon überflüssig geworden. Daneben soll diskutiert werden, wie sich die neuen Mittel kombinieren lassen, inwiefern sie schon bisher in der Sprache umgesetzt werden konnten, und der Vergleich mit alternativen Lösungsmöglichkeiten für die zugrundeliegenden Probleme gezogen werden.

Voraussetzung: Programmierkenntnisse in C++ (C++98)

Themenliste

  • Rvalue-Referenzen, Verschiebesemantik und Perfect forwarding
  • Variadische Templates und Template-Alias
  • vereinfachte generische Programmierung
  • Auto-Initialisierung und vereinheitlichte Initialisierungssyntax
  • Assertions und Berechnungen zur Kompilierzeit, andere Optimierungen
  • Lambda-Funktionen und function-Template
  • Unicode-Unterstützung und benutzerdefinierte Literale
  • Nebenläufige Programmierung
  • Lock-freie Programmierung

Nach Absprache sind weitere Themen möglich.

Literatur (Überblick)

  • Scott Meyers: Effective Modern C++. O'Reilly Media, 2014
  • Bjarne Stroustrup: The C++ Programming Language, 4th edition. Addison Wesley, 2013
  • Nicolai M. Josuttis: The C++ Standard Library: A Tutorial and Reference, 2nd edition. Addison Wesley, 2012
  • C++ Concurrency in Action: Practical Multithreading. Manning Publications, 2012
  • Torsten T. Will: C++11 Programmieren. Galileo Computing, 2012
  • Programming Languages — C++. Draft International Standard ISO/IEC JTC1 SC22 WG21 N3936, 2014

Einige dieser Bücher stehen im Uni-Netz über Safari Books Online zur Verfügung.

Verantwortung

Stefan Arnold
Prof. Dr. Jacobo Torán

Termine

Vorbesprechung mit Themenvergabe:
Freitag, 16.10.2015 um 16:15 Uhr in O27/531

Sonstiges

Rubikon-Seite (für Seminarteilnehmer)