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.
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++.