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 17. Oktober 2014 um 15:30 Uhr im Raum O27/531 statt.

Wenn Sie an dem Seminar teilnehmen möchten, aber nicht zur Vorbesprechung kommen können, wenden Sie sich einfach per E-Mail an den Veranstalter.

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
  • Parallele Programmierung
  • Lock-freie parallele Programmierung

Nach Absprache sind weitere Themen möglich.

Literatur (Überblick)

  • Bjarne Stroustrup: The C++ Programming Language, 4th edition. Addison Wesley, 2013
  • Torsten T. Will: C++11 Programmieren. Galileo Computing, 2012
  • Nicolai M. Josuttis: The C++ Standard Library. Addison Wesley, 2012
  • Programming Languages — C++. Draft International Standard ISO/IEC JTC1 SC22 WG21 N3290, 2011
  • Programming Languages — C++. Draft International Standard ISO/IEC JTC1 SC22 WG21 N3797, 2013

Verantwortung

Stefan Arnold
Prof. Dr. Jacobo Torán

Termine

Vorbesprechung mit Themenvergabe:
Freitag, 17.10.2014 15:30 Uhr in O27/531