July 2021

CppCon 2020 Practical Memory Pool Based Allocators For Modern C++--Misha Shalem

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

Practical Memory Pool Based Allocators For Modern C++

by Misha Shalem

Summary of the talk:

Runtime-deterministic memory allocations are a crucial aspect of any safety-critical real-time system. One of the simplest and widely adopted allocation mechanisms used in such systems is a memory pool with fixed block sizes. Unfortunately, the need to know the exact sizes of the memory blocks makes any practical usage of memory pools with standard C++ allocator-based approach rather problematic since users often “hide” real properties of allocations which are made under the hood. For example: STL’s node-based containers like 'std::map' as well as other standard mechanisms like 'std::promise' or 'std::allocate_shared'.

Being a company which focuses on real-time safety-critical applications, we still see a significant value in keeping compatibility with the standard allocator model as well as in following common conventions which are familiar to every C++ developer.

This talk presents an approach which uses a combination of a memory allocator implementation which instruments the code, and an external LLVM-based tool which extracts the instrumentation information and generates static memory pool definitions, allowing the allocator to switch from the heap to a memory pool without any further changes to the code. The presentation will walk through a simplest possible implementation of this approach.

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.

CppCon 2019 How to Herd 1,000 Libraries--Robert Schumacher

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

How to Herd 1,000 Libraries

by Robert Schumacher

Summary of the talk:

In the current C++ world, it is a struggle to convince even a single external library to build and behave. Adding a third and fourth dependency causes quadratic grief as each library interacts with each other and One Definition Rule violations lurk around every corner.

How, then, is it possible to manage over 1,000?

In this talk, we'll talk about the techniques, shims, and hacks used in the Vcpkg package manager to persuade, connive, and coerce all these independent moving parts into a single robust ecosystem. We'll sample the myriad approaches used by real-world libraries to declare dependence and walk through how they can be guided to do the right thing at the end of the day.

Private package management systems still thrive in corporations and these approaches can provide method to the madness of consuming open source.

CopperSpice: Variable Templates

New video on the CopperSpice YouTube Channel:

Variable Templates

by Barbara Geller and Ansel Sermersheim

About the video:

We found a great place to use a variable template that is not simply the math constant PI. In this video, we showcase roughly 15 lines of code that uses method pointers, template argument deduction, overload resolution, parameter packs, function objects, and a variable template. This video answers the question "so, what are variable templates good for?"

Please take a look and remember to subscribe!

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.

CppCon 2020 Breaking Dependencies: The SOLID Principles--Klaus Iglberger

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

Breaking Dependencies: The SOLID Principles

by Klaus Iglberger

Summary of the talk:

SOLID is an abbreviation for five of the most important software design principles:
- (S)ingle Responsibility Principle
- (O)pen-Closed Principle
- (L)iskov Substitution Principle
- (I)nterface Segregation Principle
- (D)ependency Inversion Principle

For almost two decades, these principles have proven to be a valuable set of guidelines to cope with software dependencies. Although initially introduced as guidelines for object-oriented programming, they have become a universal set of guidelines that can be used equally well for procedural, functional or generic programming. In this talk I'll recap the SOLID principles and explain why they form such a valuable set of universal design guidelines. Also, I'll go into detail about several common misconceptions.

CppCon announces Academy classes (on-site and on-line training) -- Jon Kalb

cppcon-2021-academy.pngCppCon registration is open, and the Early Bird discount is available until July 31.

This just announced:

Announcing CppCon Academy 2021 Classes

by Jon Kalb

From the article:

Registration is open for almost twenty CppCon Academy classes that will be held in the days before or after CppCon 2021 in October.

Four classes are open to online attendees and the rest will be offered to onsite attendees at the Gaylord Rockies in Aurora.

This year we are offering classes that range from those that are focused on updating you to the latest versions of C++, to those focusing on better code, testing, or design skills. This year we are offering a class on computing in mixed CPU/GPU/FPGA environments and two on embedded programming. ...