C++Guns – RoboBlog

05.08.2018

C++ Guns: semantics is important

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

Einfach N Zufallszahlen ziehen ist einfach. Eigentlich gibt es darüber nicht viel zu sagen, aber es ist ein schönes Beispiel für Semantik. (Dank an Ben für die Inspiration). Wir müssen immer den Spagat zwischen Lesbarkeit und Performance machen. Manchmal sind die Verantwortlichkeiten der Funktionen nicht klar zu definieren. Soll die Funktion, welche N Zufallszahlen zieht, […]

C++ Guns: Assembler RMW (Read Modify Write) instructions

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

Bin Heute über diesen GCC Bugfix gestolpert GCC 8 stopped using RMW (Read Modify Write) instructions on x86. Es gibt also Assembler Instruktionen die in einem Zug einen Wert laden, den Wert ändern, und ihn wieder zurück schreiben. Dabei spielt es keine Rolle, ob dabei erst noch ein Pointer dereferenziert werden muss, oder die Variable […]

03.08.2018

C++ Guns: Multi-Arraylist with C++17 P0184R0 Sentinel

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

P0184R0 Differing begin and end types in range-based for. Sentinel - value to terminate a loop after it was read Let me try something. A list implemented as array - Multiple lists stored in a single array. This can be helpful if the lists are very short e.g. less than 10 items. For this example, […]

27.07.2018

C++ Guns: use FORTRAN debug techniques in C++

Filed under: Allgemein — Tags: , — Thomas @ 15:07

On of the first things one learn about FORTRAN: you can very easy write stuff to files without getting worried about file creation of filenames. Just write to a random number, the file handle. You can do this everywhere in the code. The output is append to the file. And the file gets automatic cleaned […]

24.07.2018

C++ Guns: Rolladensteuerung 1

Filed under: Allgemein — Tags: — Thomas @ 21:07

Hier habe ich ein kleines Projekt eines Freundes zur Steuerung eines Rolladens mittels Mikrocomputer, selbst gebastelte Elektronik und natürlich C++. Die ganze Anlage wird über Textdateien gesteuert. So ist der Zustand des Rolladenmotor durch vier Relais in einer Datei mit Buchstaben kodiert. Das Programm soll nun die Status Datei einlesen, modifizieren und wieder raus schreiben. […]

22.07.2018

C++ Guns: apply generic lambda to tuple

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

Hm, generic lambdas sind toll.

21.07.2018

Why C++ sucks (2016.02 edition) - Schwachsinn

Filed under: Allgemein — Tags: — Thomas @ 18:07

Schaut mal https://dorinlazar.ro/why-c-sucks-2016-02-edition/ Dieser Mensch hat nicht verstanden was C++ ist. Das zeigt nur ein Zitat aus diesem Text und ihr könnt ihn gleich darauf in die Mülltonne werfen. My point was that there is no clear flow to work with the language. Er hat nicht verstanden, dass C++ eine general purpose Sprache ist. Wenn […]

C+ Guns: Praxisbeispiel: Objekt v.s. Funktional

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

Objekt v.s. Funktional Keine Angst, ich will hier keinen Glaubenskrieg auslösen. Mich interessieren mögliche Performance Nachteile und wie sie entstehen. Das Beispiel zeigt einen vereinfachten Codeausschnitt aus der Praxis, bei dem jede Variable als Funktionsargument übergeben wird. Meine Frage ist nun, ob dies Performancetechnich schlechter ist, als alle Funktionen als Memberfunktionen auszulegen und alle Variablen […]

15.07.2018

C++ Guns: Why C++ don't need Python PEP 572 Assignment Expressions

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

It is often a failure to assign a variable inside a if() instead to compare it. One can easily mistype '==' to '='. Both times the result can be converter to bool. To prevent this kind of error one languages simply forbid assignments inside if(), others have or introduce new operators. But this is all […]

12.07.2018

C++ Guns: create compile time lookup table

Filed under: Allgemein — Tags: — Thomas @ 20:07

Eine lookup table LUT fest im Programm compilieren sollte mit C++ und constexpr kein Problem sein. Zur Kontrolle ob es funktioniert der erzeugte Assembler Code Beispiel 1 nutzt std::array da es zur Compilezeit eine bekannte Länge hat und eine normale ausgeschriebene Schleife. Unschön ist, dass das Array erst deklariert und danach erst initialisiert wird. Also […]

« Newer PostsOlder Posts »

Powered by WordPress