Das auto keyword – Modernes C++

Motivation Wenn man lange mit dynamisch typisierten Sprachen wie Python gearbeitet hat, empfindet man Sprachen, die eine explizite Typangabe zur Compile-Zeit verlangen, komplizierter und langsamer in der Implementierung. Aber halt: in C++ hat sich seit C++11 einiges getan. Wie war es früher? Vor C++11 musste der Datentyp einer Variablen immer explizit angeben werden: int age…

Compiler-Optionen für sauberes C++

Motivation Nachdem ich mich in den letzten Wochen wieder vermehrt mit modernem C++ beschäftigt habe, möchte ich auch sicherstellen, dass mein Code maximal davon profitiert. Ein Aspekt davon ist es, möglichst sauberes C++ durch den Compiler zu erzwingen. Das geht am besten durch Compiler-Optionen. Was sind Compiler-Optionen? Compiler-Optionen oder auch Flags sind unverzichtbare Werkzeuge, um…

How to use the Eigen library in C++

Motivation Working with matrices and vectors in C++ can be a bit cumbersome. The Eigen library is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. It is used in many scientific and engineering applications. Eigen is versatile, efficient, and easy to use. It supports all matrix sizes, from small…

Wie setze ich die C++ Version in CMake

Motivation Im Rahmen meines Udacity Nanodegree Robotics Software Engineer muss ich mit C++17 arbeiten, da ROS Noetic Ninjemys Sprachfeature von C++17 verwendet. Nun wollte ich wissen, wie ich die C++-Version in CMake setze. Top Level Cmake-Datei In der Top-Level CMake-Datei setze ich die C++-Version folgendermaßen: set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)

Funktionen asynchron ausführen – Modernes C++

Nachdem wir im letzen Artikel die Grundlagen von Threads und Multithreading kennengelernt haben, wollen wir uns in diesem Artikel mit asynchronen Funktionen beschäftigen. Dafür hat c++ einem header namens future im Gepäck. Dieser header enthält die Klasse std::future und die Funktion std::async. Wir inkludieren den Header und erstellen eine Funktion, die wir asynchron ausführen wollen.…

Einführung in Multithreading – Modernes C++

Was ist multithreading? Multithreading ist die Fähigkeit eines Prozessors, mehrere Threads gleichzeitig auszuführen. Ein Thread ist ein Pfad der Ausführung, der es einem Prozessor ermöglicht, mehrere Aufgaben gleichzeitig auszuführen. Die meisten Prozessoren können mehrere Threads gleichzeitig ausführen. Beispiel mit einem (zusätzlichem) Thread In diesem Beispiel wird ein zusätzlicher Thread gestartet, der eine Funktion ausführt. Um…