C++Guns – RoboBlog

11.04.2018

C++ Guns: Return function from function with same signature

Filed under: Allgemein — Tags: — Thomas @ 08:04

Funktionen können Funktionen als Rückgabe Type/Wert haben, solange sie die selbe Signatur vorweisen. Also z.B. alles Binary Funktionen mit Argumenten von Type double.

03.04.2018

C++ Guns: sort() mit Visitor

Filed under: Allgemein — Tags: — Thomas @ 11:04

Wen hat es nicht schon einmal gestört, dass std::sort() so transparent arbeitet? Manchmal muss man wissen welche Elemente beim Sortieren wohin verschoben werden. Sozusagen eine Permutation. Manchmal ist es möglich, den zu sortierenden Daten eine ID mitzugeben. Aber oft nicht. Zum Beispiel arbeite ich mit 2D Punkten. Diese liegen natürlich schön dicht gepackt im std::vector, […]

23.03.2018

C++ Guns: concept: force function return type

Filed under: Allgemein — Tags: — Thomas @ 02:03

Das Problem von impliziten Konversionen in C/C++ ist nicht neu. Wenn integer in floats und floats in integer kopiert werden und dabei die Werte der Zahlen verändert werden, kann das in wissenschaftlichen Anwendungen katastrophale Auswirkungen haben. Es müssen verschiedene Szenarien beachtet werden. So ist z.b. das kopieren eines 32bit integer in ein 64bit float kein […]

15.03.2018

C++ Guns: Quick Q: What is a non-trivial constructor in C++?

Filed under: Allgemein — Tags: — Thomas @ 09:03

https://isocpp.org/blog/2018/03/quick-q-what-is-a-non-trivial-constructor-in-cpp Super und kurze Zusammenfassung was triviale Konstruktoren sind und wie man sie bekommt. Es zeigt sich, dass man für reine Datentypen besser auf viele lustige c++ Features verzichten soll. Wenn man einfach _garnichts_ programmiert und nur seine member typen deklariert, ja noch nicht mal default initialisieren, steht man am besten da. Auf einmal wird […]

27.02.2018

C++ Guns: Templated class specialization where template argument is a template

Filed under: Allgemein — Tags: — Thomas @ 16:02

Okay das ist mit Abstand das krasseste was ich seit langem mit Templates gemacht habe, obwohl die Aufgabe doch recht klar und einfach ist. Der Code ist von der Syntax her auch noch irgendwo okay. Naja, vllt. auch nicht. Ich habe meine Experimentelle Graph Klasse mit entsprechenden Iteratoren. Datencontainer und Algorithmus trennen und mit Iteratoren […]

11.02.2018

C++ Guns: std::chrono::duration to nice human readable text

Filed under: Allgemein — Tags: — Thomas @ 13:02

std::chrono::duration stellt eine Zeitspanne dar. Zum Beispiel wie lange ein Programm schon läuft. Eine Textausgabe in Sekunde, Minuten, Stunden u.s.w wäre also schön. Die Umrechnung von std::chrono::duration nach Stunden ist super einfach. Die Hauptarbeit übernimmt std::chrono::duration_cast und vordefinierte Werte für Sekunden, Minunten und Stunden gibt es schon. Die Erweiterung für Tage ist entsprechend einfach.

05.02.2018

C++ Guns: Generic Data Type Design Pattern - Teil 4

Filed under: Allgemein — Tags: — Thomas @ 16:02

Die Idee, für User defined Datentypen jede Variable in einem std::tuple oder std::array zu halten, kann nicht überall gut sein. Für jede Variable benötigt man noch eine getter Funktion um der Variablen einen Namen und damit Semantik zu geben. Ich hatte in den letzten Kapitel noch erwähnt, dass es viel Sinn macht, diese Funktionen als […]

02.02.2018

C++ Guns: Generic Data Type Design Pattern - Teil 3

Filed under: Allgemein — Tags: — Thomas @ 23:02

Im letzten Teil hatte ich das serialisieren angesprochen wie das z.B. mit der Qt Klasse (und andere) QDataStream möglich ist. A data stream is a binary stream of encoded information which is 100% independent of the host computer's operating system, CPU or byte order. For example, a data stream that is written by a PC […]

C++ Guns: Generic Data Type Design Pattern - Teil 2

Filed under: Allgemein — Tags: — Thomas @ 16:02

Weiter gehts mit der Anwendung meiner Idee alle einfachen Datentypen als std::array oder std::tuple abzubilden. Wie im ersten Teil schon für den Point2D Datentyp realisiert. Jetzt werde ich einen Range Datentyp bauen. Dieser besteht einfach aus zwei Zahlen die eine obere und untere Grenze von etwas angibt. Zusätzlich ist die Spanne zwischen obere und untere […]

C++ Guns: Generic Data Type Design Pattern - Teil 1

Filed under: Allgemein — Tags: — Thomas @ 15:02

Hmm das Problem lässt sich vermutlich am besten anhand von Beispielen erklären. Wie immer nehm ich gern mein Point2D Datentyp her. Es gibt ja verschiedene Wege so etwas zu implementieren. Eine class mit privaten x/y Variablen und entsprechende getter/setter. Oder ein struct mit nur public x/y Variablen: Das Problem bei dieser Implementierung ist, dass die […]

Older Posts »

Powered by WordPress