C++17 In Detail

Hi there!

My name is Bartek, I'm a programmer from Cracow/Poland. This is my blog about C++ and native coding.

Quick jump links:

02 December 2019

Threading in C++17: Loopers & Dispatchers

Threading and Loopers, C++17

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.

25 November 2019

How to Convert Numbers into Text with std::to_char 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.

18 November 2019

A Programmer’s Guide to Performance Analysis & Tuning on Modern CPUs

perf, C++

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. When it’s no longer the case that each HW generation provides a significant performance boost, we must start paying more attention to how fast our code actually runs.

11 November 2019

Lazy initialisation in C++ and Multi-threading

Lazy Init, C+=, Multithreading

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.

04 November 2019

Five Awesome C++ Papers for the Belfast ISO Meeting and C++20 Status

Belfast 2019 ISO C++ Meeting

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!

01 November 2019

#C++ Links #37 - The case for C++ and Big Four of C++20

Welcome to new C++ Links - most relevant and useful articles, podcasts and videos that happen between 25th October and 1st November 2019.

Today you will find links to articles about refactoring, the story of std::less, what is lazy initialization and why you should learn C++. Let’s start!

28 October 2019

Lazy Initialisation in C++

Lazy Initialisation in C++

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.

Keep reading and see how you can use this pattern with the C++ Standard Library.

21 October 2019

C++ Tricks: IIFE for Complex Variable Initialization

IIFE for complex initialization of const variables in C++

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.

14 October 2019

C++ Ecosystem: Compilers, IDEs, Tools, Testing and More

C++ Ecosystem

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.

30 September 2019

How To Use Vocabulary Types from C++17, Presentation

C++17 Vocabulary Types

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.

Have a look at the slides and extended comments.

16 September 2019

C++17 In Detail - Print Version!

C++17 In Detail

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.

14 September 2019

C++ Links #36 - How to start with modern C++, Concepts & Books!

Welcome to new C++ Links - most relevant and useful articles, podcasts and videos that happen between 6st and 13th September 2019.

Today you will find links to an article about how to implement StringConvertible concept, how to get started with Modern C++, an article about issues with C++20 Ranges, new books and many other!

06 September 2019

C++ Links #35 Myths about C++ good practices, raw string literals

Welcome to new C++ Links - most relevant and useful articles, podcasts and videos that happen between 31st August and 6th September 2019.

Today you will find links to a video about raw string literals, myths about C++ good practices, a Ranges library on GPU and more.

02 September 2019

New new() - The C++17's Alignment Parameter for Operator new()

Alignment parameter for C++17 new()

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.

© 2017, Bartlomiej Filipek, Blogger platform
Disclaimer: Any opinions expressed herein are in no way representative of those of my employers. All data and information provided on this site is for informational purposes only. I try to write complete and accurate articles, but the web-site will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use.
This site contains ads or referral links, which provide me with a commission. Thank you for your understanding.