HTML Text Editor - final solution

A quick post on the current - and final - solution to use TinyMCE3 with Qt:

HTML Text Editor - final solution

by Jens Weller

From the article:

In the last post about my HTML Text Editor, I mentioned that while the editor worked like it should, other things didn't. I was able to fix at least some of the driver related issues, but kept seeing random crashes. So I decided to try out a different solution, instead of going on a long and tiring debugging trip.

Learn C++ Concepts with Visual Studio and the WSL—Andrew Pardoe

Now you can learn Concepts TS in Visual Studio 2017 by targeting the Windows Subsystem for Linux (WSL):

Learn C++ Concepts with Visual Studio and the WSL

by Andrew Pardoe

From the article:

Concepts enable adding requirements to a set of template parameters, essentially creating a kind of interface. The C++ community has been waiting years for this feature to make it into the standard...

Refactoring the HTML Text Editor for QWebEngine

An update on the HTML Text Editor I hacked with Qt and TinyMCE3:

Refactoring the HTML Text Editor for QWebEngine

by Jens Weller

From the article:

In the last post, I described my experience with using MSVC as a compiler in combination with QtCreator. The reason I set this up was, that with Qt 5.7 QWebkit isn't anymore supported, and the HTML TextEditor based on tinymce3 is a central part of my application. Instead of QWebkit there is now QWebEngine, based on chromium, a very fine solution...

Fold Expressions—Rainer Grimm

Do you know how they work?

Fold Expressions

by Rainer Grimm

From the article:

With fold expressions you can implement the from Haskell known functions foldl, foldr, foldl1 and foldr1 directly in C++. These four functions successively reduce a list to a single value...

C++17 Features—Bartlomiej Filipek

An extensive list of the future standard changes:

C++17 Features

by Bartlomiej Filipek

From the article:

In my last C++ summary (for 2016) I wrote that the draft for C++17 is the most important thing that happened. I’ve put a list of features of the new standard, and today I’d like to expand the topic so we can learn some more details.

A “sorted view”—Nick Athanasiou

Sorting can be done many ways.

A “sorted view”

by Nick Athanasiou

From the article:

This installment elaborates on the creation of a “sorted_view” utility. The “References” section contains links to the complete code; throughout the article, we provide demos and snippets to showcase and explain the implementations. The section on modernizing the code contains real world applications of the following C++17 features:

  1. structured bindings
  2. template argument deduction for class templates

My take on variant—Jonathan Müller

An interesting point of view and implementation of a variant in one article!

My take on variant

by Jonathan Müller

From the article:

C++17 is going to add std::variant. To quote the linked documentation, it is a “type-safe union”. A union is like a struct, but can only store one member at a time. This has many applications, but sadly it doesn’t mix well with non-trivial types, you have to call the destructor yourself etc. Furthermore, nothing prevents you from accessing a union member that isn’t active.

std::variant fixes that. It correctly calls the destructor when switching the active member, it prevents invalid access, etc. However, I’m not quite happy with it and I needed an implementation now. So I’ve decided to implement my own variant as part of my type_safe library.

It was a fun challenge and since my previous attempt was two years ago, I could improve it a lot. Let’s go through some of my design decisions.