P1770R0: On vectors, tensors, matrices, and hypermatrices - Wirklich jeder sollte diese kurze Präsentation einmal durchschauen. Ich habe den Eindruck, als hätte mindestens ein Mensch auf der Welt Ahnung von dem Thema. P1764R0: ssize Should be Named count - Kurz und kompakt P0631R7: Math Constants ENDLICH! P1768R0: Contiguous Containers Should Contain .data() - Ja P1751R0: […]
22.06.2019
C++ Guns: 2019-06 pre-Cologne Paper - funny one
09.06.2019
C++ Guns: std::filesystem und std::regex
Heute mache ich die ersten Versuche mit std::filesystem und std::regex. Der GCC 8.1 ist installiert. Die Doku liegt bereit. Es kann los gehen. std::filesystem Ich möchte bestimmte "Müll" Dateien im Projekt Verzeichnis auflisten und ihren Speicherplatzverbrauch summieren. Die Handhabung von std::filesystem ist wirklich erstaunlich einfach. Klar strukturiert. Es funktioniert. Etwas, dass böse Zungen von std::chrono […]
01.06.2019
C++Guns: RE: C++ Core Guidelines: std::array und std::vector sind die erste Wahl
Ich finde es schade, dass der Artikel von Rainer Grimm bei heise.de C++ Core Guidelines: std::array und std::vector sind die erste Wahl so wenig Beachtung bekommt. Er wirft nicht nur ein paar interessante Fragen auf, sondern geht auf der Kernaussage von Performance ein: Don't think, use std::vector. Natürlich hat sich der C++ Gründervater Bjarne Stroustrup […]
10.05.2019
C++ Guns: play with threads and future
Um schnell zu testen ob ein Rechner erreichbar ist, kann man ihn pingen. Der ping timeout dauert aber gern mal eine Sekunde. Wenn 10 Rechner nicht erreichbar sind, wartet man auch 10 Sekunden auf das Programm. Statt potentiell nur eine Sekunde. Die ping Anweisung kann man gut parallel ausführen. Zeit für std::async und std::future Hier […]
C++ Guns: C++20 class types in non-type template parameters
Mit C++20 und GCC9 wir können als Template Parameter nun auch einfach eigenen Typen angeben. Ohne uns mit Workarounds herumschlagen zu müssen. Ein einfaches Beispiel sollte es verdeutlichen
01.05.2019
ACCU 2019 Videos
very nice! So Zeug hab ich bei meiner BA gebracht Optimising a small real-world C++ application - Hubert Matthews [ACCU 2019] This is a hands-on demonstration of optimising a small real-world application written in C++. It shows how measurement tools such as strace, perf tools, valgrind and cachegrind on Linux can be used to find […]
14.03.2019
C++ Guns: floating point bit round - p0476r2 Bit-casting object representations
C++20 Low-level code often seeks to interpret objects of one type as another: keep the same bits, but obtain an object of a different type. Doing so correctly is error-prone: using reinterpret_cast or union runs afoul of type-aliasing rules yet these are the intuitive solutions developers mistakenly turn to. Attuned developers use aligned_storage with memcpy, […]
06.03.2019
Profiler read/write miss Gedanken
Profiler read/write miss Gedanken write miss: unterscheiden zwischen permanenten und temporäre Daten: Permanente Daten: wohl unausweichlich, denn die neuen Daten MÜSSEN ja vom Chache in den Hauptspeicher geschrieben werden. Temporäre Daten: eventuell vermeidbar, wenn man sie an einer späteren Stelle im Code erstellt. Wann immer Daten in den Cache geschrieben werden, fliegen andere Daten raus […]
02.03.2019
C++ Guns: A Sorted Data Type
Mit dem C++ Typsystem ist es möglich Informationen und Algorithmen in das Programm zu codieren, die schon vor der Compilezeit fest stehen. Wie würdet ihr folgendes Problem lösen: Ein Algorithmus, zum Beispiel die binäre Suche, benötigt einen bereits sortieren Datensatz. Den Datensatz zu sortieren und danach die Suche anzuwenden ist trivial. Aber in einem anderen […]
22.02.2019
C++ Guns: rvalue referenz, forwarding referenz, universal referenz WTF?
Die gute Nachricht: Normale Menschen müssen das alles nicht verstehen. Auch Anwendungs- Programmierer und library designer brauchen die Details nicht zu wissen. Ihr könnt meine Regeln durchlesen, daran halten und dann STOP. Die Details sind für Leute, die sich einem 1.5h Vortrag über && anhören können. Streng genommen wird der Begriff "universal referenz" nicht im […]