In 2017 a new standard of C++ language has been released. Unlike C++14, C++17
has introduced a lot of new features. C++14 was rather a supplement for C++11
(ok, it has introduced some completely new features, but most were improvements
of what we had known from C++11). C++17 brought a lot of new possibilities.
In this post I'm going to tell you about new things in C++17 which I like the
most, because I found them useful in my newest projects.
When I started using Internet regularly back in 2007 or so, I used to use same
password everywhere. I was changing it periodically (but not so often). After
some time (probably a year) I started using password managers. First one was
KeePass. I had two pendrives: one with database, second ...
About one year ago (in September 2016) I decided to try keyboard layout
other than QWERTY. I wanted to learn touch typing and be able to still use
QWERTY when needed. I had already heard a lot of good things about Dvorak that
time, but I wanted to be able to still use QWERTY ocasionally and I thought that
Dvorak is too different than QWERTY. At that time I was aware of Colemak
existance. Colemak is advertised as easy to learn and ergonomic layout which
increases typing speed (especially in English) and is quite similar to QWERTY.
Colemak moves only 17 keys. So I decided to give it a chance.
I'd like to tell you something about training process, summarize my progress and
tell you why using alternative layout is not so painful.
Through last few months nothing has happened here. Year 2015 was probably the
worst if we talk about number of publications, which I have written. However
they were the best articles I have ever written. Four of them has been
translated to French by Developpez.com. My articles has been linked on Twitter
among other by biicode. One time my article was linked on isocpp.org.
Modern tools provided with C++11's standard library make fight with memory leaks
and errors easier and more effective. Sometimes problems which are seemingly not
dangerous might put an end to your application. We are going to learn how to
find and avoid them.
In the latest part of Programming modular applications in C++ I have shown you
some practical examples of modular applications. These applications probably
work well with your dedicated plugins. Problems begin when you try to mix in
plugins written by your users which have been compiled using different compilers
(it might work) or even operating systems (it cannot work!).
In the Introduction to programming modular applications in C++ I described some
simple examples. In this part I'm going to show you more sophisticated
applications which also will use modules. Examples from this part will be object
oriented and will present more professional approach to programming modular
In this part I'll show you two examples. First would be a solution of task which
I gave you at the end of last article. You were asked to write a calculator
which can add numbers, subtract them and load modules with other operations. The
second example I'm going to write for you will be simplified system shell
(so-called command line).
Nowadays nearly every application can be extended with many different types of
add-ons or plugins. Thanks to them we can write new functions to our favourite
applications without rebuilding them each time we want to extend or modify it.
I'm going to tell you how to write modular application in C++.