In today’s article, I’ll show you battle-tested features from the well-known Boost libraries that were adapted into C++17.
With the growing number of elements in the Standard Library, supported by experience from Boost you can write even more fluent C++ code.
Read on and learn about the cool things in C++.
Multithreading is a tough nut in software development. Not just because there are dozens of ways to approach a single problem, but also since one can get so many things wrong.
In this article, I want to present how to realize the concept of a Looper with Dispatchers in C++17.
In this post, I’ll show you how to use the newest, low-level, conversion routines form C++17. With the new functionality, you can quickly transform numbers into text and have super performance compared to previous techniques.
Intro Until C++17, we had several ways of converting numbers into strings:
sprintf / snprintf stringstream to_string itoa and 3rd-party libraries like boost - lexical cast And with C++17 we get another option: std::to_chars (along with the corresponding method from_chars) !
They say “performance is king’… It was true a decade ago and it certainly is now. With more and more data the world generates each day, we need more and more computing power to process it.
It used to be the case that some SW vendors preferred to wait for a new generation of HW to speed up their application and did not spend human resources on making improvements in their code.
In the previous post about lazy initialisation, we showed examples and differences between using raw pointers, unique_ptr and std::optional to store the object and create it later. However, we implemented the samples from the perspective of single-threaded scenarios.
In this post, we’ll try to fill the gap and show you how to make your lazy objects available in a multithreading environment.
Following the pattern for other ISO C++ Meetings, I prepared a blog post where you’ll learn about:
The current status of C++20 an overview about the Belfast meeting (4th till 9th Nov) a few interesting papers that are worth reading Let’s start!
Disclaimer: the view presented here is mine and does not represent the opinion of the entire ISO C++ committee.
Lazy initialisation is one of those design patterns which is in use in almost all programming languages. Its goal is to move the object’s construction forward in time. It’s especially handy when the creation of the object is expensive, and you want to defer it as late as possible, or even skip entirely.
What do you do when the code for a variable initialization is complicated? Do you move it to another method or write inside the current scope?
In this blog post, I’d like to present a trick that allows computing a value for a variable, even a const variable, with a compact notation.
To write a professional C++ application, you not only need a basic text editor and a compiler. You require some more tooling. In this blog post, you’ll see a broad list of tools that make C++ programming possible: compilers, IDEs, debuggers and other.
Last Update: 14th October 2019.
Note: This is a blog post based on the White Paper created by Embarcadero, see the full paper here: C++ Ecosystem White Paper.
Two weeks ago, I had a pleasure to give a talk at our local C++ User Group in Cracow. This time I spoke about vocabulary types from C++17: std::optional, std::variant and std::any.
The Talk During the presentation, I tried to explain the motivation and some most crucial use cases for the new types that we got in C++17.
Last week was an important milestone for my book: it got a print version available at Amazon! In this post, I’ll share some details behind the event and the plans.
The Print (on Demand) Since March 2019, I’ve been testing a few platforms that offer print on demand. One book came from Lulu.
Last week’s article about smaller C++17 features mentioned updated operator new() that handles non-standard alignment of objects. How does it work? Can you use it to ask for arbitrary alignments? Let’s try some code and have a closer look.
Last update: 9th September 2019
Why should you care about alignment?