Wilkening-Online Logo

C++ User-Treffen in Aachen am 12.3.2015



Von Detlef Wilkening

Wieder mal fand das C++ User-Treffen bei Schlumberger statt - und da 41 interessierte C++ Programmierer gekommen waren - wurde es wiedermal recht kuschelig eng.

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

Der Abend startete - wie bei Schlumberger üblich - mit einer kurzen Sicherheitsbelehrung von Sven Johannsen, bei der u.a. die Fluchtwege kurz aufgezeigt wurden.

Dann war ich an der Reihe: ich begrüßte die Anwesenden, gerade auch die Neuen - denn es waren doch einige mir unbekannte Gesichter dabei. Danach stellte ich die geplanten Vorträge vor und wieder die ewig alte neue Frage: wer möchte bei den nächsten Treffen Lightning- bzw. Hauptvorträge halten? Während die Hauptvorträge für die nächsten beiden Treffen gesichert sind - fehlen mir selbst für das nächste Treffen noch einige Lightning-Vorträge. Von daher mußte ich mal wieder Werbung machen und alle Anwesenden darauf hinweisen, dass das Treffen von unserer eigenen Beteiligung lebt.

Und dann ging es endlich los mit C++...

Den Anfang übernahm Stefan Pabst mit einem Vortrag über einen von ihm entworfenden Static-Funktions-Zeiger-Caster. Hintergrund war der Vortrag von Sven Johannsen beim letzten C++ User-Treffen, wo Sven gezeigt hatte wie er Funktions-Zeiger an Qt für den Signal-Slot Mechanismus übergeben hatte. Stefan gefiel die doch recht lange Syntax der Funktions-Übergabe nicht und hatte sich nach dem letzten Treffen gefragt, ob sich dies mit Template-Typ-Deduktion nicht einfacher umsetzen liesse. Und natürlich wurde er fündig - und er stellte uns Stück für Stück seine Lösung vor. Die aufbrandende Diskussion brachte noch einige Ideen auf, wie man die Übergabe vielleicht noch mehr vereinfach könnte - ich bin gespannt, ob es bald noch einen Lightning-Vortrag zu diesem Thema gibt. Bis dahin hier erstmal die Folien und den Quelltext von Stefan als Zip-Archiv.

C++ User-Treffen Aachen 12.3.2015 - Bild 2
Foto 02: Stefan Pabst mit "Static-Funktions-Zeiger-Caster"

Der zweite Lightning-Vortrag kam dann von Daniel Evers, der ganz kurz die Boost.MSM (Meta-State-Machine Library) vorstellte. Enthält ein Problem Status und Status-Übergänge - vielleicht noch mit Guards und Bedingungen, dann sollte man dies meist nicht händisch lösen, sondern sich einer State-Machine anvertrauen - und Daniel stellte hierfür die Boost.MSM vor.

C++ User-Treffen Aachen 12.3.2015 - Bild 3
Foto 03: Daniel Evers mit "Boost.MSM (Meta-State-Machine Library)"

Er hatte dafür als Beispiel eine Warenhaus-Tür mitgebracht, und setzte in seiner Lösung neben der Boost.MSM zusätzlich noch die Library Boost.Asio für die asynchronen Anteile ein, über die er schon beim C++ User-Treffen am 14.08.2014 einen Hauptvortrag gehalten hatte. Sein komplettes Beispiel inkl. State-Charts liegt hier als Zip-Archiv vor.

C++ User-Treffen Aachen 12.3.2015 - Bild 4
Foto 04: Ein Blick auf die Boost.MSM

Im folgenden dritten Lightning-Vortrag stellte Jan Christoph Uhde einfach nur einen "schönen" C++14 Lambda-Ausdruck vor, der Funktions-Aufrufe kapseln und die Berechnung-Ergebnisse cachen kann.

C++ User-Treffen Aachen 12.3.2015 - Bild 5
Foto 05: Jan Christoph Uhde mit "Ein C++14 Lambda-Ausdruck"

Eigentlich nur wenige Zeilen Code - und doch sorgte er für einige Diskussionen - bis alle Anwesenden ihn verstanden hatten. Aber man sah sehr schön, wie in C++ mit generischen Lambdas und Variadic-Parametern sehr allgemeine wiederverwendbare Lösungen möglich sind. Die beiden Quelltexte sind hier als Zip-Archiv vorhanden.

C++ User-Treffen Aachen 12.3.2015 - Bild 6
Foto 06: Ein Blick auf ein generisches C++14 Lambda

Im vierten und letzten Lightning-Vortrag stellte Maximilian Florkowski die neue C++ Entwicklungs-Umgebung CLion der Firma JetBrains vor. JetBrains ist in erster Linie für ihre Java Entwicklungs-Umgebung "IntelliJ" bekannt, versucht dieses KnowHow zur Zeit aber auch in die C++ Welt zu transportieren. Und so stellte Maximilian die Grundfunktionalitäten dieser neuen C++ IDE vor - für mehr war leider keine Zeit. Aber er wird beim nächsten C++ User-Treffen in einem weiteren Lightning-Vortrag noch über die Debugging- und Refactoring-Möglichkeiten von CLion berichten.

C++ User-Treffen Aachen 12.3.2015 - Bild 7
Foto 07: Maximilian Florkowski mit "CLion"

Nach vier Lightning-Vorträgen war erstmal eine Pause angesagt. Viele Anwesende nutzen die Gelegenheit, sich was Neues zu Trinken oder zum Knabbern zu holen, und über die gehörten Vorträge mit den anderen zu diskutieren. Ich versuchte mich vor allem darin, neue Haupt- und Lightning-Vorträge aufzutun.

Dann ging es mit dem Haupt-Vortrag über "Multithreading in C++11/14" von Fabian Kantereit in den zweiten Teil des Abends. Mit "Multithreading" hatte sich Fabian kein Einsteiger-Thema ausgesucht - aber er ging diese Herausforderung ganz souverän an. Stück für Stück stellte er die wichtigsten Bestandteile von C++11 und C++14 bzgl. Multithreadings vor: Threads, Mutexe, Locks, Atomics, Futures, Promises, async, und einiges mehr. Für jedes Element hatte er Beispiele vorbereitet und präsentierte diese "live".

C++ User-Treffen Aachen 12.3.2015 - Bild 8
Foto 08: Fabian Kantereit mit "Multithreading in C++11/14"

Natürlich sorgte das Thema für manche Diskussion. Multithreading ist wichtig, aber leider nicht trivial. Und so steuerten viele Anwesende Erfahrungen und Erkenntnisse bei, aber es tauchten auch viele Fragen auf die von der Runde ausführlich beantwortet wurden. Fabians Beispiele und sein Vortrag finden sich hier als Zip-Archiv.

Und dann näherte sich langsam der Ende des Abends. Einige verließen das Treffen direkt nach dem Hauptvortrag, andere nutzen die Gelegenheit und diskutierten noch lange über C++, die Vorträge und viele weitere Themen.

C++ User-Treffen Aachen 12.3.2015 - Bild 9
Foto 09: C++ User-Treffen Aachen 12.3.2015

C++ User-Treffen Aachen 12.3.2015 - Bild 10
Foto 10: C++ User-Treffen Aachen 12.3.2015

C++ User-Treffen Aachen 12.3.2015 - Bild 11
Foto 11: C++ User-Treffen Aachen 12.3.2015

Der unermüdliche Rest räumte zuletzt noch auf und kurz nach 23:00 war das C++ User-Treffen dann wirklich 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: