Wilkening-Online Logo

C++ User-Treffen in Aachen am 7.5.2015



Von Detlef Wilkening

Wiedermal fand das C++ User-Treffen bei Inform statt, und obwohl diesmal nur 23 Interessierte gekommen waren, wurde es doch wieder ein sehr kurzweiliger Abend.

C++ User-Treffen Aachen 7.5.2015 - Bild 1
Foto 01: C++ User-Treffen Aachen 7.5.2015

Und Inform hatte sich auch diesmal wieder großzügig gezeigt, und wieder Getränke und Essen gesponsort - nochmal danke von hier aus.

C++ User-Treffen Aachen 7.5.2015 - Bild 2
Foto 02: C++ User-Treffen Aachen 7.5.2015

Schon fast traditionell began auch dieser Abend wieder mit einer kurzen Einleitung von mir: welche Vorträge würde es heute geben. Und natürlich die immer wiederkehrende Frage: Wer möchte einen Lightning- oder einen Haupt-Vortrag halten? Melden kann man sich natürlich nicht nur beim C++ User-Treffen, sondern immer - wer möchte, melde sich bitte bei mir.

Aber zurück zum eigentlichen Thema: C++. Ich hatte noch extra einen neuen kleinen Lightning-Vortrag für diesen Abend vorbereitet, damit insgesamt ein breiteres Spektrum abgedeckt wird. Mit "CMake" und "Clion" standen 2 C++ Tools auf dem Programm, und mit den geplanten Vorträgen zu "Boost.Filesystem" und "Boost.UUID" wäre es dann sehr einseitig geworden. Darum hatte ich kurzfristig "Boost.UUID" aus dem Programm genommen, und statt dessen einen Vortrag über ein kleines Sprach-Feature von C++ integriert. Extra auch nichts abgedrehtes, damit auch Anfänger heute Abend auf jeden Fall auf ihre Kosten kommen konnten.

C++ User-Treffen Aachen 7.5.2015 - Bild 3
Foto 03: Detlef Wilkening mit "Const-Referenzen auf temporäre Objekte"

Mein Thema war dann genau genommen 12.2.5 des C++ Standards ISO/IEC 14882:2011(E). Da wohl kaum einer den Standard auswendig kann: es ging um die Erweiterung der Lebensdauer von temporären Objekten beim Binden an Referenzen in manchen Situationen. Ein kleiner, aber wichtiger Trick, in alten C++ Zeiten - mit dem manche Situation einfacher umgesetzt werden konnte. Werden z.B. Wert Funktions- Rückgaben (temporäres Objekt) an Const-L-Value-Referenzen gebunden, so erweitert sich die Lebensdauer des Objekts auf die Lebensdauer der bindenen Referenz. Hilfreich ist dies, wenn der Rückgabe-Typ z.B. nicht exakt bekannt ist oder er sehr kompliziert ist. In C++11 kann man dies auch nun auch mit z.B. "auto" viel einfacher und leistungsfähiger lösen - aber in C++98 und C++03 war dies ein gern genutzter Trick. Aber auch in C++11/14 gibt es noch eine Stelle gibt, wo dieses Verhalten sehr wichtig ist.

Der zweite Lightning-Vortrag war dann der zweite Teil über die neue C++ Entwicklungs-Umgebung "CLion" der Firma JetBrains von Maximilian Florkowski. Nachdem er letztes Mal die Grundfunktionlitäten von "CLion" vorgestellt hatte, ging es diesmal um zwei Fortgeschrittenen-Funktionen: "Debugging" und "Refactoring". Anhand eines größeren Projektes zeigte Maximilian, welche Features "CLion" hier bietet.

C++ User-Treffen Aachen 7.5.2015 - Bild 4
Foto 04: Maximilian Florkowski mit "CLion"

Gerade die Refactoring-Fähigkeiten sorgten für manche Diskussion, wobei es sich fast immer um die Frage drehte in wieweit "CLion" die Semantik von C++ kennt und berücksichtigt, und wo die Vor- und Nachteile gegenüber Tools auf Clang-Basis liegen.

C++ User-Treffen Aachen 7.5.2015 - Bild 5
Foto 05: Ein Blick auf "CLion"

Zum Schluß derLightning-Vorträge war Sven Johannsen an der Reihe - er stellte die "Boost.Filesystem-Library" vor, die ja auch Teil des kommenden C++17 Standards sein wird: sie bietet eine plattform-unabhängige Repräsentation des Datei-Systems. Sven erklärte die wichtigsten Klassen wie z.B. "path", aber auch viele der freien Funktionen und Möglichkeiten.

C++ User-Treffen Aachen 7.5.2015 - Bild 6
Foto 06: Sven Johannsen mit "Boost.Filesystem-Library"

Besonders interessant war natürlich wie "Boost.Filesystem" mit den unterschiedlichen Zeichensätzen und den unterschiedlichen Strukturen (Single-Root vs. Mulit-Root, usw.) umgeht. Hier kam dann auch manche Frage auf und es entstand manche Diskussion. Unterm Strich war hinterher aber allen ungefähr klar, wie "Boost.Filesystem" arbeitet, wie man sie benutzt - und vor allem warum man (außer vielleicht in Spezialfällen) nicht mehr direkt mit dem Datei-System-Funktionen des jeweiligen Betriebs-Systems arbeiten sollte.

Nach soviel C++ war dann erstmal wieder eine Pause angesagt - zum Glück gab es ja Essen und Getränke.

C++ User-Treffen Aachen 7.5.2015 - Bild 7
Foto 07: C++ User-Treffen Aachen 7.5.2015

Der Haupt-Vortrag - gehalten von Jan Christoph Uhde und Michael Becker - drehte sich dann um "CMake", ein plattformunabhängiges Build-Tool - gerade für den C++ Bereich. Den ersten Part des Vortrags übernahm Jan Christoph Uhde und stellte die Grundlagen und die Nutzung von "CMake" theoretisch und praktisch unter Linux und Windows vor. Er generierte verschiedene Make-Files und Visual-Studio Solutions aus CMake, zeigte das Einbinden von Bibliotheken wie Qt und Boost, und ging dann noch auf viele spezielle Optionen von CMake ein. Auch hier kam manche Frage, manche Diskussion, und - da einige Teilnehmer selber mit CMake arbeiten - auch mancher Erfahrungs-Bericht auf. Aber auch an kritischen Einwänden mangelte es nicht, da z.B. Boost.Build auf einer noch höheren Abstraktions-Ebene arbeitet und damit die Build-Konfigurationen noch einfacher werden. Aber auch CMake konnte in der Diskussion mit manchen Features glänzen.

C++ User-Treffen Aachen 7.5.2015 - Bild 8
Foto 08: Jan Christoph Uhde und Michael Becker mit "CMake"

Den zweiten Teil des CMake-Vortrags übernahm dann Michael Becker - er ging mehr auf Spezialitäten von Windows ein, während Jan sich überwiegend mit Linux beschäftigt hatte. Er beleuchtete näher die Generierung von Visual-Studio Solutions und Projekten, und stellte mögliche Arbeitsweisen mit CMake unter Windows vor. Auch hier trugen Teilnehmer aus ihrer eigenen Erfahrung einiges bei - und so war auch dieser Teil sehr interessant, selbst wenn man selber nicht unter Windows arbeitet.

C++ User-Treffen Aachen 7.5.2015 - Bild 9
Foto 09: Michael Becker mit "CMake"

Damit war der offizielle Teil zuende - der Abend noch lange nicht. Diesmal gab es - gefühlt - noch mehr Diskussionen als die Treffen zuvor. Es wurde jedenfalls noch später als sonst, und kein bißchen langweilig. Erst am Fr. war das Treffen dann vorbei.



Den nächsten Termin, weitere Berichte und andere Informationen zu den C++ User-Treffen in Aachen finden sich auf meiner "C++ User-Treffen in Aachen" Seite.


C++ User-Treffen: