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:

17 February 2020

An Extraterrestrial Guide to C++20 Text Formatting


In C++20, we have a new and cool way to do text formatting. It’s more like Python style and combines C-Style printf and with modern C++ type-safety. In this guest post written by the author of the proposal - Victor Zverovich - you’ll learn how to use this new technique!

10 February 2020

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

Prague 2020 ISO C++ Meeting

Continuing the tradition 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 Prague ISO C++ Meeting (10th till 15th February 2020)
  • a few interesting papers that are worth reading

Let’s start!

03 February 2020

Activity Indicators - Example of a Modern C++ Library


In this blog post, we’ll show you how to write a library that displays a task activity indication for multithreading applications. Have a look at several essential Modern C++ techniques and how to combine them to write good code.

Let’s dive in!

27 January 2020

C++20 Reference Card

While the C++20 Standard is still being finalised and polished, we know all of its core features. At first, the new specification of the language might sound complex and overwhelming. That’s why, if you want to have an overview of the core elements and get the bigger picture, you can have a look at my new reference card.

20 January 2020

"Use the Force, Luke"... or Modern C++ Tools

Use Modern C++ Tools

In this blog post, I’d like to show you how I could quickly improve my old project with Modern C++. Thanks to using the newest compilers and free code analysis checkers you can cover and modernise a lot of code.

13 January 2020

2 Lines Of Code and 3 C++17 Features - The overload Pattern

the overload patter C++17

While I was doing research for my book and blog posts about C++17 several times I stumbled upon this pattern for visitation of std::variant:

template<class... Ts> struct overload : Ts... { using Ts::operator()...; };
template<class... Ts> overload(Ts...) -> overload<Ts...>;

With the above pattern, you can provide separate lambdas “in-place” for visitation.

It’s just two lines of compact C++ code, but it packs a few interesting concepts.

Let’s see how this thing works and go through the three new C++17 features that make this patter possible.

06 January 2020

A Gentle Intro to Developing C++ Apps for AWS and S3

A Gentle Intro to Developing C++ Apps for AWS and S3

Amazon Web Services (AWS) provide multiple tools for developing a native cloud application. In particular, the Software Development Kit (SDK) for C++ programming language enables developers to build powerful and efficient AWS applications for any platform. This includes Android, iOS, Linux and Windows apps.

This article introduces the basic concepts of C++ app development for AWS and S3, including real code examples.

31 December 2019

C++ at the end of 2019

C++ at the end of 2019

2019 is almost over. Let’s reflect on how C++ changed during this time! What were some significant events, how the Standard progressed, how tools changed and many more.

Let’s have a look!

23 December 2019

C++ at the End of 2019, Survey

It’s almost the end of the year!

I prepared a quick survey, so we can learn about our experience with the language.

16 December 2019

How C++17 Benefits from the Boost Libraries

Boost, C++17

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

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.

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