C++Guns – RoboBlog

07.01.2019

C++ Guns: Passing function objects around (Update Example random generators)

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

Update zu Passing random generators around (functor) In jenen Beispiel habe ich den RNG per std::function übergeben. Das muss nicht sein. Mit std::function verliert man die inline Performance. Und es geht auch ohne seltsames std::bind. Aktualisierter Code:

C++ Guns: Pass function objects per Forwarding references!

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

I say: Pass (template) function objects per Forwarding references! and not per value. The reason is simple: it works also with function objects with state. https://en.cppreference.com/w/cpp/language/reference A little example will show it: Generate 5 random numbers: calls to perValue: 4 4 4 4 4 calls to perForwardReference: 4 193084 730423176 870612250 1216431607 It doesn’t work […]

04.01.2019

C++ Guns: Rekursive Template Datentypen

Filed under: Allgemein — Tags: — Thomas @ 17:01

Schonmal probiert den ein und selben template Datentypen mit sich selbst zu nutzen? Mach nichts, ich auch nicht ;) Als erstes Beispiel ein einfacher, nicht rekursiver Datentyp: Seit C++17 gibt es Class template argument deduction. Allerdings muss man für User-defined typen auch User-defined deduction guides angeben. Dieser hier ist sehr simpel. Damit compiliert das oben […]

03.01.2019

Punktewolke Paarweiser Abstand - Symmetrien entdecken

Filed under: Allgemein — Thomas @ 21:01

Ich habe mir letztens, aus gegebenen Anlass, die wunderbare Weihnachtsvorlesung von Dr. Edmund Weitz angesehen und bin gegen Ende im dritten Teil stecken geblieben. Die Poincaré-Vermutung (Teil 3 von 3, Weihnachtsvorlesung 2018) Es wurde die Frage gestellt, Wie sieht das Leben auf einem Torus aus? Ich mach es kurz: Wenn das Universum ein Torus wäre […]

02.01.2019

Modellbahn: Gleis schottern

Filed under: Allgemein — Tags: , — Thomas @ 19:01

Ich möchte es auch mal probieren. Gleise schottern. Die alten Metall Gleise sind zwar nicht zum Schottern gedacht, aber irgendwie wird es schon. Alle benötigten Materialien stehen bereit. Auch ein paar Schotterreste haben sich gefunden. Als Mischung habe ich 1:1 Leim und Wasser genommen. Das war aber vielleicht etwas zu dickflüssig. Oder es könnte etwas […]

Weihnachten 2018: LEGO 40139 60181 & Lebkuchenhaus

Filed under: Allgemein — Thomas @ 18:01

Gretel etwas schüchtern. Hänsel formt ein Schneeball. Die böse Hexe wartet schon. Doch die Gerechtigkeit naht. Bonus 1UP

01.01.2019

C++ Guns: You can use auto on a private type!

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

See https://stackoverflow.com/questions/13532784/why-can-i-use-auto-on-a-private-type https://stackoverflow.com/questions/31185119/preventing-return-of-private-inner-class-instance Auf den ersten Blick etwas überraschend, aber wenn man bedenkt, dass die Zugriffsregeln nur für Namen gelten, ist alles wieder konsistent. Den Namen einer Privaten Klasse darf nicht genutzt werden, aber der Typ schon. Daher funktioniert hier auto, da kein Name explizit hingeschrieben werden muss. Selbe Argumentation gibt auch für Templates oder […]

25.12.2018

35C3

Filed under: Allgemein — Thomas @ 18:12

https://media.ccc.de/c/35c3 Eventphone: Gestern Heute Morgen Space Ops 101 - An introduction to Spacecraft Operations https://media.ccc.de/v/35c3-9923-space_ops_101 After launching a spacecraft into orbit the actual work for mission control starts. Besides taking care of the position and speed of the spacecraft this includes e.g. detailed modeling of the power usage, planning of ground station contacts, payload operations […]

12.12.2018

C++ Guns: Rätsel 2018

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

Betrachte ein unstruturiertes Gitternetz bestehend aus Punkte und Dreiecken. Jeder Punkt kann durchnummeriert werden. Für jeden Punkt IP bezeichnet die Variable NCONN die Anzahl der angeschlossenen Punkte pro Punkt. Und die Variable NCONE bezeichnet die angeschlossene Dreiecke pro Punkt. Es ist leicht zu sehen, dass Punkte am Rand eine unterschiedliche Anzahl von angeschlossenen Punkte und […]

08.12.2018

C++ Guns: Level of Indirection ("dereferencing")

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

Die Performance ist ein Opfer von Level of Indirection. Jetzt auch bei mir. Ich will keinen langweiligen Code zeigen wie so etwas aussieht, oder wie man es verhindern kann. Viel interessanter ist es doch, wie das aus Assembler Ebene aussieht. Dazu zwei Assembler Auszüge. Der erste mit zwei zusätzlichen Indirektionen. Es wird auf das i-th […]

« Newer PostsOlder Posts »

Powered by WordPress