"Lets quickly fix this crash"

published at 09.08.2018 20:08

A specific action causes one of my applications to crash. And so far I've just ignored it, as its not something that hinders daily use. But as I mostly get to work with code written by my self, no body else to blame or fix it. So yesterday I thought - ok - lets quickly fix this. After all I had the IDE already open...

TIL: inheriting constructors, default parameters and enable_if

published at 26.04.2018 23:11

... might not mix that well. And its an interesting language detail causing it.

Thoughts on my recent Experiment with Qt & Templates

published at 12.04.2018 23:41

So in March of this year I did play around with two libraries in Qt and boost, to test out some ideas. This post is about ideas and problems I'm currently thinking about.

A simple EditDialog template

published at 29.03.2018 15:32

So far I covered the basics for connecting boost fusion adapted structs with Qts Model/View architecture. Today is the next step: a simple dialog for editing a single instance of such a fusion enabled type.

Accessing a fusion sequence with a run time defined index

published at 24.03.2018 23:05

Lets say you have a compile type defined type, like a tuple or a fusion sequence. And its easy to access, just call get<Index>(variable) and you get the reference to the types run time instance in the index. Easy. But for this you need to know which index to call at compile time. What if you get that index only at runtime? Like in the previously mentioned Model/View Interface of Qt?

Implementing a QTableModel for displaying fusion adapted structs

published at 22.03.2018 22:38

More TMP with boost::mp11

published at 20.03.2018 23:05

A short blog post on 3 little functions I've written with mp11, to show a bit more how one can work with mp11. The first two are related to working with tags, the last is an easy way to get the member names of a fusion adpated struct into an std::array.

A short TMP experiment with boosts mp11 & fusion

published at 17.03.2018 20:09

Yesterday and today I did some fun coding to play around with boosts new, C++11 TMP library: mp11. I have an idea, and one of the fundamental building blocks would be boost::fusion and its adapt struct infrastructure. I wanted to know if I could combine fusion and mp11 in a good way, to create a certain interface. I'll likely go into the exact ideas and reasoning for this interface later, for now lets focus on how to create it.

Working with your own APIs

published at 08.03.2018 14:39

Yesterday I had the pleasure to implement a new feature in my CMS: moving a page or directory with in the website tree. Its quite easy, once you've implemented it, but it was also an interesting exercise in using code I once wrote. In Summer of 2015 I wrote this tree implementation, this old blog post also covers most of the interfaces which I needed to use now.

World class C++ factories

published at 01.03.2018 14:20

One of the most popular talks during the review for last years conference, was "The hidden rules of world class C++ code" by Boris Schäling. And indeed, he delivered at the conference. He picked the factory pattern to present his version of world class C++ code, and as it happens to be, I've also have an implementation of this and some experience with boost::factory, which is mentioned in the Bonus Slides of his talk:

How if constexpr simplifies your code in C++17

published at 22.02.2018 16:24

So, yesterday we had a little live coding session at my C++ User Group Düsseldorf. I want to recreate some of this code, to show how C++17 actually does help quite a bit with making code shorter and more expressive. Since I don't have a local C++17 compiler installed, I use godbolt and wandbox to test some of the examples.

Drawing circular text in Qt

published at 16.02.2018 20:17

For a few weeks now, I use Friday afternoon to do some coding. As often managing Meeting C++ has become a non-code activity, it feels good to have a spot in the week where I focus on "what could I code today?". Today I focused on drawing circular text in Qt, which mostly consisted of writing prototype code, there is still lots to tweak if you'd wanted to use this in production.

C++ in 2018

published at 09.02.2018 17:44

Its time to have a look, what one can expect form the best programming language of the world in 2018...

A CppCon 2017 trip report

published at 06.10.2017 23:32

I'd like to share my experience of attending CppCon 2017, or how I'd like to describe it: playing multiplayer "find waldo" for one week. This is also the first time, that I attend a CppCon without speaking, I could complain about this, but actually I was very happy not to speak. There was no time to prepare a new talk anyways, Meeting C++ has kept me busy, but back to CppCon.

Future proofing our C++ APIs

published at 12.08.2017 20:30

While writing my CMS, I made one experience: using both std and boost versions of various types in the same code base. Often, it is a 3rd library, in this case from boost, which I use, only supporting the old boost versions. Which is fine, but it makes maintenance and working with the code more difficult, as constantly you see a mix of boost and std.

The reviews have begun

published at 10.08.2017 15:40

A few weeks ago I announced a C++ review community, which since then has grown to 250+ members on reddit. There has been great feedback and discussions since then, so that the idea is now ready to be tested.  With August, the first review period has started, but first have a look at the idea of a review community again:

How I got started with C++

published at 28.07.2017 15:08

We always hear and see what the latest news on C++ or some particular subset of it is. What one usually does not get to know, is how people got started with C++. But one thing for sure, all of us in the C++ community are either still getting started, or did once. There is a good section on how you could get started today at isocpp.org, but the past did not offer such a luxury.

The power of method templates

published at 14.07.2017 17:30

This is very useful if you work with Qt, but could also apply in many other situations. My use case often is Qt, as it does not allow for template classes to be derived from QObject. Hence, all of these UI and widget classes end up being quite concrete implementations.

Fuzzing beast with libFuzzer

published at 10.07.2017 12:24

During the weekend I wanted to take a closer look at beast, a http library proposed for boost. I planned to write an http client class, as thats something I'll need in some project later anyways. I've been looking at beast on and off for a few month now, and started by reviewing the documentation and examples to get a feel for the library it self.

5 years of Meeting C++!

published at 06.07.2017 15:24

Just a little bit more then 5 years ago, Meeting C++ went public. Since then, it has been a wild ride and huge success. Today, Meeting C++ reaches over 50k in social media, the conference it self has grown from 150 to 600 in its 5 editions.