Boost C++ Bibliotheken

Boost stellt eine qualitativ sehr hochwertige Sammlung von in einem "Peer Review"-Prozess entstandenen Softwarekomponenten dar, deren Lizenz die Verwendung sowohl in Open Source wie auch Closed Source Software ermöglicht. Viele Neuerungen des C++11-Standards wurden ursprünglich für Boost entwickelt. Entsprechend ist es mit Boost auch möglich, viele Techniken neuerer C++-Standards auch mit C++98-Compilern (und auch über Plattformgrenzen hinweg) zu nutzen.

Der Kurs führt Teilnehmer in die Verwendung ausgewählter Boost-Bibliotheken ein. Pro Kurstag werden drei Boost-Bibliotheken vertieft eingeführt, viele weitere der insgesamt rund 130 Bibliotheken werden in dem Umfang besprochen, wie es für die Entwicklung eines integrierten Beispiels über den Kursverlauf hinweg notwendig ist. Hierbei wird auch auf Bibliotheken eingegangen, die die Nutzung vieler C++11-Techniken mit C++98/03-Compilern ermöglichen. Der Kurs umfasst zudem eine kurze Einführung in das CMake Build-System, insoweit dies für die Übersetzung der Beispiele notwendig ist.

Da Boost und CMake sehr portabel sind, können Teilnehmer auch auf ihren eigenen Laptops mit der Verwendung unter anderen Betriebssystemen als Linux experimentieren. Die im Kurs entwickelten Beispiele stützen sich jedoch auf eine im Kursverlauf selbst übersetzte Installation von Boost unter Linux. Seitens der Kursleitung kann die Verwendbarkeit der bereitgestellten Beispiele und Referenzlösungen auf "fremden" Systemen nicht sichergestellt werden. Bei Problemen mit der Verwendung von Boost unter anderen Betriebssystemen wird in sofern auf Linux und die bereitgestellten Kurs-Laptops ausgewichen.

Voraussetzungen

  • Der Kurs setzt Kenntnisse in der C++-Programmierung auf der Ebene von C++03 einschließlich der zugehörigen Standardbibliotheken (insbesondere Standard Template Library) voraus. Er eignet sich insofern nicht für Programmiereinsteiger.
  • Auch mit der Template-Programmierung unter C++ sollten Teilnehmer vertraut sein, da Boost an vielen Stellen Template-Konstrukte verwendet
  • Kenntnisse des C++11- oder C++14-Standards sind nicht erforderlich. Jedoch werden im Kurs einige C++11-Konstrukte eingeführt und mit ihrem Boost-Äquivalent verglichen.
  • Teilnehmer sollten unter Linux selbständig C++-Programme (auch mit mehreren Komponenten oder einer selbsterstellten Bibliothek) entwickeln und übersetzen können. Dies schließt auch den Umgang mit der Unix-Kommandozeile (--> bash) mit ein.
  • Teilnehmer sollten sich mit einem Programmiereditor unter Linux hinreichend auskennen, um selbständig die bereitgestellten Beispiele bearbeiten zu können. Seitens des Kursleiters wird Eclipse / CDT empfohlen. Die bereitgestellten Beispiele werden mit Eclipse und g++ unter Linux getestet
  • Die bereitgestellten Beispiele werden sich auf das Build-System CMake stützen. Detailkenntnisse dieses Systems sind nicht erforderlich, im Kursverlauf erfolgt eine kurze Einführung zu diesem Thema.
  • Vorkenntnisse in der Verwendung von Boost sind nicht erforderlich

Inhalt

Der Kurs führt unter Anderem in die folgenden Bibliotheken ein:

  • Netzwerkprogrammierung mit Boost.ASIO
  • Zugriff auf das Dateisystem mit Boost.Filesystem
  • Parsen von Programmoptionen mit Boost.ProgramOptions und Boost.PropertyTree
  • Zufallszahlengernerierung mit Boost.Random
  • Serialisierung mit Boost.Serialization
  • Der Boost.Spirit Parser-Builder
  • Unittests mit Boost.Test
  • Thread-Programmierung mit Boost.Thread

Die Vorstellung umfasst Programmierbeispiele und Aufgaben. Kleinere Boost-Bibliotheken (Beispiele: Smartpointer, Boost.Function, Boost.Bind, ...) werden zur Auflockerung zwischendurch vorgestellt, wenn sie bei den Beispielen Vorteile bringen. Darüber hinaus sollen weitere Bibliotheken nach Wunsch der Teilnehmer gemeinsam erarbeitet werden. Der Kurs beinhaltet auch eine Diskussion der kommerziellen Verwendbarkeit von Boost sowie aktueller Trends.