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:

18 March 2019

Dark Corner of C++ Corner Cases

Darker C++

The C ++ 17 standard consists of almost two thousands pages. Two thousand pages describing every single aspect of the language. Some pages relates to all kinds of details, exceptions, and things that you do not care about every day. We will try to look at a few such cases, which we hope never see in the production code.

11 March 2019

Lambdas: From C++11 to C++20, Part 2

Lambda expression, from C++11 to C++20

In the first part of the series we looked at lambdas from the perspective of C++03, C++11 and C++14. In that article, I described the motivation behind this powerful C++ feature, basic usage, syntax and improvements in each of the language standards. I also mentioned several corner cases.

Now it’s time to move into C++17 and look a bit into the future (very near future!): C++20.

09 March 2019

C++ Links #22

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 2nd and 8th of March 2019.

This week you will find links to articles about accepted Modules proposal, a great MSVC improvement that is reducing binaries with C++ exceptions by 20% and many more!

04 March 2019

C++17 In Detail is 100% Ready!

C++17 In Detail

I released “C++17 In Detail” in August 2018, and I set the status to 90%. I didn’t expect that writing of that remaining 10% would take me so long :) Now it’s high time to set the counter to 100%.

That’s why I’m pleased to announce that my book “C++17 In Detail” is now done!

See the recent changes and a new code sample!

01 March 2019

C++ Links #21

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 23rd February and 1st of March 2019.

This week we have a massive update on the upcoming C++ Standard - Kona Meeting reports. Then you can also read about the history of lambdas, about smart iterators and more.

25 February 2019

Lambdas: From C++11 to C++20, Part 1

Lambda expression, C++11

Lambda expressions are one of the most powerful additions to C++11, and they continue to evolve with each new C++ language standard. In this article, we’ll go through history and see the evolution of this crucial part of modern C++.

22 February 2019

C++ Links #20

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 16th and 22nd of February 2019.

This week you will find a link to a few interesting papers from the Kona ISO C++ Meeting, how to set bitmask using Designated Initializers and many more!

18 February 2019

Five Awesome C++ Papers For Kona 2019 ISO Meeting

Kona 2019 ISO C++ Meeting

I’m just in time (I hope)! In a few hours, a new C++ISO meeting will start! This time the committee gathered in Kona, Hawaii for their first meeting in 2019.

Let’s see what’s already in C++20 and let’s have a look at some smaller, but very handy proposals that might get into the standard.

16 February 2019

C++ Links #19

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 9th and 15th of February 2019.

In this week you will find a link to a great post about a technique that can help reduce compilation time, an article that explains how Smart Iterators are working and many more!

11 February 2019

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

std::variant<int, float> intFloat { 0.0f };
std::visit(overload(
    [](const int& i) { ... },
    [](const float& f) { ... },
  ),
  intFloat;
);

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 enable this one by one.

08 February 2019

C++ Links #18

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 2nd and 8th of February 2019.

In this week you will find a link to interesting CMake features, a detailed description of the std::rotate algorithm and many more!

02 February 2019

C++ Links #17

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 26th of January and 1st of February 2019.

This week you will find a link to all 177 papers before next ISO C++ Meeting in Kona, link to an article that sums up the current state of C++ Modules and many more!

28 January 2019

std::filesystem in C++17 In Detail

C++17 In Detail

On Friday 18th January I’ve pushed another update for the book. This time I rewrote the whole chapter about std::filesystem. Please have a look at what changed and what are the plans.

The book got more than 25 new pages!

25 January 2019

C++ Links #16

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 19th and 25th of January 2019.

This week you will find a link to a ray-tracer, real-life examples of ranges, new useful features of Microsoft Visual Studio and many more!

© 2017, Bartlomiej Filipek, Blogger platform
Any opinions expressed herein are in no way representative of those of my employers.
This site contains ads or referral links, which provide me with a commission. Thank you for your understanding.