Articles & Books

Counting in Iteration Models--Barry Revzin

What is your opinion?

Counting in Iteration Models

by Barry Revzin

From the article:

There’s a really interesting issue pointed out in the July 2021 mailing by way of P2406R0.

Basically, in C++, the iterator loop structure ordering is as follows (I wrote it with a goto to make the ordering more obvious. Note that in C++, we start with the it != end check, not the ++it operation. The point of this ordering is to focus on the transition from one position to the next)...

C++20 concepts are structural: What, why, and how to change it?--Jonathan Müller

Flexibility.

C++20 concepts are structural: What, why, and how to change it?

by Jonathan Müller

From the article:

C++20 added concepts as a language feature. They’re often compared to Haskell’s type classes, Rust’s traits or Swift’s protocols.

Yet there is one feature that sets them apart: types model C++ concepts automatically. In Haskell, you need an instance, in Rust, you need an impl, and in Swift, you need an extension. But in C++? In C++, concepts are just fancy boolean predicates that check for well-formed syntax: every type that makes the syntax well-formed passes the predicate and thus models the concepts.

This was the correct choice, but is sometimes not what you want. Let’s explore it further.

C++ Ecosystem in 2021, JetBrains research

Every year we ask thousands of developers, with various backgrounds from all around the globe, dozens of questions, which we have localized into many different languages. We then clean, weigh, and process the data carefully, and validate it against other data sources. Our goal is to extract the key trends, which we will present through infographics to the public. This data is used across JetBrains to help our team make the right decisions on both global and product-levels. We are happy to share this data with the community so we can all thrive together!

C++ Ecosystem in 2021

by Anastasia Kazakova

The article shares the recent findings and the comments from Matt Godbolt (creator of Compiler Explorer) and Andreas Kling (creator of SerenityOS):

  • In 2021, 1 in 5 C++ developers are using the latest officially signed C++20 standard even though it’s not yet fully supported in all major compilers!
  • Top-3 C++20 big features and how many developers plan to adopt them soon: 48% for Modules, 46% for Concepts, and 33% for Coroutines.
  • The majority of C++ developers prefer code analysis tools bundled into their IDEs.
  • Top-3 most popular build systems in C++ through the last 5 years is CMake, Makefile, msbuild.
  • A third of developers not writing any unit tests at all.

C++ is awesome, here's why...--Vinit Jogani

What do you think?

C++ is awesome, here's why...

by Vinit Jogani

From the article:

C++ is, hands down, one of the most misunderstood languages in software developer pop culture today. People often compare it to C because it is a "low-level" language. Consequently, it has received a reputation of being an esoteric language that only the performance paranoid care about. This is far from true. I have been programming in C++ as my primary language for a while now and the developer experience is actually really good -- much better than I had imagined it would be.

In this article, I want to debunk some common myths about C++ that I heard before I started using it. Then, I want to talk about the actual superpowers that C++ provides you that most other languages do not...

Migrating VAST to C++20 - A Field Report--Benno Evers

Does it help you?

Migrating VAST to C++20 - A Field Report

by Benno Evers

From the article:

Recently, the VAST developers had a reason to celebrate. No, not the latest release—finally all our supported platforms have a working C++20 compiler available. Given that VAST is still comparatively moderate in size at around 70,000 lines of code and already uses C++17 extensively, we did not expect too much hassle. So we seized the chance, rolled up our sleeves and started converting.

The process was indeed mostly painless, but some errors still had us stumped for a while. Below we describe our experiences, in the hopes that they might be useful to others who attempt the same.

Software Architecture with C++, Book Review--Bartlomiej Filipek

Will you read it?

Software Architecture with C++, Book Review

by Bartlomiej Filipek

From the article:

In April, we got a new book - from two Polish authors - Piotr and Adrian - on C++ Software Architecture. This one is fascinating and refreshing. While it won’t teach you all the latest C++ features or low-level tricks in our favorite language, it will move you to a higher level with architecture, building, patterns, design, and development for the cloud.

Let’s see what’s inside.

C++ Trainings aligned with Meeting C++ 2021

These trainings will go along with a talk at Meeting C++ 2021:

C++ Trainings at Meeting C++ 2021

by Jens Weller

From the article:

Today I can give you a first overview on the planned trainings that accompany Meeting C++ 2021. All trainings are held online, the date is chosen by the trainers.

This years Meeting C++ conference focuses on learning and giving you the best experience online. Meeting C++ has chosen some of the best trainers to give you an opportunity to learn even more about C++ in 2021. Rainer Grimm, Patricia Aas and Slobodan Dmitrovic are the trainers for the first 3 fantastic courses.

Extended Aggregate Initialisation in C++17--Jonathan Boccara

Were you aware of the change?

Extended Aggregate Initialisation in C++17

by Jonathan Boccara

From the article:

By upgrading a compiler to C++17, a certain piece of code that looked reasonable stopped compiling.

This code doesn’t use any deprecated feature such as std::auto_ptr or std::bind1st that were removed in C++ 17, but it stopped compiling nonetheless.

Understanding this compile error will let us better understand a new feature of C++17: extended aggregate initialisation...