For the second time this year I'm refactoring a program from a single purpose to have two or more modes of operation. Both times the start and end result is similar, just the processing is different. A classic case of using polymorphism.
Clazy is a Clang plugin which extends the compiler with over 50 warnings related to Qt best practices ranging from unneeded memory allocations to API misuse. It’s an opensource project spawned by KDAB’s R&D efforts for better C++ tooling.
In 2012 Meeting C++ got started in July. Planned first to be a one off conference, now it is a successfull international conference and a platform for C++ on the internet.
As this crisis unfolds, some word on how this impacts our own community, the C++ world.
Now where the year is a few weeks old, lets see whats ahead for C++ in 2020!
I've spend the past year often working with PHP instead of C++. And now its time to connect some of these systems with the C++ Backend that powers the conference it self.
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...
... might not mix that well. And its an interesting language detail causing it.
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.
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.
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?
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.
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.
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.
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:
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.
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.
Its time to have a look, what one can expect form the best programming language of the world in 2018...
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.