February 2021

GotW #99 Solution: Postconditions -- Herb Sutter

Solution just posted:

GotW #99 Solution: Postconditions

by Herb Sutter

From the article:

Postconditions are directly related to assertions (see GotW #97)... but how, exactly? And since we can already write postconditions using assertions, why would having language support benefit us more for writing postconditions more than for writing (ordinary) assertions?

How std::any Works--Jonathan Boccara

Lambda magic.

How std::any Works

by Jonathan Boccara

From the article:

In the previous post we’ve seen a very nice technique to use value semantics with inheritance and virtual methods, which was made possible by std::any.

Given its usefulness, it would be interesting to better understand std::any. Indeed, std::any is sometimes said to be “the modern void*“. But it does much more than a void*...

12 Different Ways to Filter Containers in Modern C++--Bartlomiej Filipek

Many ways.

12 Different Ways to Filter Containers in Modern C++

by Bartlomiej Filipek

From the article:

Do you know how many ways we can implement a filter function in C++?

While the problem is relatively easy to understand - take a container, copy elements that match a predicate and the return a new container - it’s good to exercise with the Standard Library and check a few ideas. We can also apply some Modern C++ techniques.

Let’s start!

ACCU 2021 Accepting Volunteer Applications

ACCU 2021 will be held online March, 10-13.

ACCU 2021 Accepting Volunteer Applications


From the announcement

It is our pleasure to announce the 1st year of the ACCU Conference Volunteer program! We are inviting students and young coders with an interest in C++ and software development to attend the March 10-13, 2021 online conference as Volunteers.

The Volunteer program is an excellent way for students and young coders with an interest in C++ and the development process in general to learn about language and make lasting connections with the community.

Volunteers will receive free registration.

Volunteers will handle various tasks during the conference, such as assisting at the online-help desk, in the -lobby, or in the -exhibitor hall.

Students from all fields of study are welcome to apply.

Please note that the deadline is the 16th of February

PVS-Studio Roadmap 2021

PVS-Studio can currently analyze programs written in C, C++, C#, and Java. It also supports some C++ language extensions, for example, C++/CLI and C++/CX. In 2021, we do not plan to implement support for new languages, but we plan to expand the analyzer. We want to support several new compilers (C, C++) for micro controllers and some development environments, such as CLion.

PVS-Studio Roadmap 2021

by Andrey Karpov

From the article:

We will continue to support the MISRA C and MISRA C++ coding standards. However, it's time to also support a more modern set of rules described in The AUTSAR C++14 Coding Guidelines. This document is the MISRA C++:2008 standard update, and is also based on leading code standards and research papers prepared by AUTOSAR.

6 years of weekly Meeting C++ Blogrolls!

Its now 6 years since Meeting C++ publishes a weekly blogroll for C++!

6 years of Meeting C++ Blogrolls

by Jens Weller

From the article:

Today 6 years ago the first weekly blogroll of Meeting C++ was released.

Since then it has been released on (most) Fridays, giving you a weekly overview of what happend in the C++ Blog scene and Videos in the past 7 days. Since last year...

Contracts, Preconditions & Invariants -- Andrzej Krzemienski

"Contract support" is one of the things actively developed for C++.

Contracts, Preconditions & Invariants

By Andrzej Krzemienski

About the article

This blog post is an introductory material, demonstrating what a contract is, how preconditions and invariants can be derived from the contract, and how this process can help detect bugs. Two points stressed in this post are: (1) preconditions and invariants are not “contracts” and (2) only a subset of contract-related bugs can be detected through preconditions and invariants.