C++Guns – RoboBlog

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 […]

11.07.2018

C++ Guns: ArrayND multidimensionaler Container

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

Programmierübung: Array Verallgemeinerung von 1D zu 2D zu ND. Interessant wird es die Indizierung zu programmierten, da die Anzahl der Dimensionen variabel, aber zur Compilezeit bekannten ist. Der Index für ein 2D Array berechnet sich einfach: idx1D = dimsize[0]*j + i Das Muster wiederholt sich einfach. Für 3D ist es idx = dimsize[1]*dimsize[0]*k + dimsize[0]*j […]

13.06.2018

C++ Guns: fold over std::tuple of std::vector of Types ...

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

Okay das ist ein seltsames Konstrukt. Wir haben viele Instanzen vieler Typen über die alle zusammen iteriert wird. Eigentlich ist der Code ziemlich klar. Ansonsten.... WOW was alles mit C++17 geht.

C++ Guns: nächste darstellbare Gleitkommazahl : std::nextafter

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

std::nextafter(Arithmetic from, Arithmetic to) Returns the next representable value of from in the direction of to. Die nächste Zahl nach 1.0f ist dann 1.0000001192092895508. Hab das mal für eine Reihe von Zahlen mir ausgeben lassen. Und nicht nur die nächste Zahl, sondern bis zu 1000 nächst Zahlen. Hier das Programm für C++: Und hier das […]

05.06.2018

C++ Guns: fold over std::tuple und erzeugten Assembler Code

Filed under: Allgemein — Tags: — Thomas @ 00:06

Hier ein Ausschnitt aus dem Kniffel Spiel Code. Habe jede gültige Kombination als einen Typ dargestellt mit einem gemeinsamen Typ Score, welcher die erzielten Punkte enthält. Um die gesamte Punktzahl zu erhalten, muss über jeden Typ im tuple iteriert werden und die einzelnen Punkte aufaddiert. Dies wird mit std::apply und fold erledigt. Alternativ dazu wird […]

02.06.2018

C++ Guns: convert tuple to parameter pack

Filed under: Allgemein — Tags: — Thomas @ 10:06

Part1: print std::array with std:integer_sequence Part2: convert tuple to parameter pack Part 3: print std::array with std::apply and fold Guckst du hier https://en.cppreference.com/w/cpp/language/parameter_pack und hier https://en.cppreference.com/w/cpp/language/fold und da https://stackoverflow.com/questions/47216057/how-to-write-a-fold-sum-function-for-c-tuple parameter pack zu std::tuple ist einfach https://stackoverflow.com/questions/47216057/how-to-write-a-fold-sum-function-for-c-tuple Der template Type Ts besteht aus den drei einzelnen Typen int, double und const char*. Die Variable args... hält […]

« Newer PostsOlder Posts »

Powered by WordPress