Articles & Books

An interview that went viral -- Rainer Grimm

cpp.pngSending us straight into the new year with cash, cars, and games:

An interview that went viral

by Rainer Grimm

From the article:

I gave the interview for the e-finance-blog "efinancialcareers". I essentially stated the following:

  • C++ is heavily used in the finance industry, for game developers, and in the automotive industry.
  • When you want to learn C++, start at least with C++11.
  • C++ is often used to build infrastructure.
  • C++ is too big to fall.

... In total, I got almost 2000 comments. Today, I want to present the main points about the final interview, because this is my motivation for writing articles, posts, and books, recording videos, and teaching and mentoring C++...

Using modules in the big three compilers

With detailed step by step instructions on how to make it work...

Using modules in the big three compilers: a small experiment

 From the article:

The goal of my experiment was to see how easy it is to write code that a) uses C++20 modules, b) can be compiled by GCC, Clang and MSVC without using conditional compilation, c) imports something from the standard library, d) exports at least one templated function, e) has a peculiarity that makes the module harder to find (in my case, the module is named b but the file that contains it is named a.cppm).

The experiment sort of succeeded...

The Strategy Pattern -- Rainer Grimm

A canonical example:

 

The Strategy Pattern

by Rainer Grimm

From the article:

Purpose: Defines a family of algorithms and encapsulates them in objects

Also known as: Policy

Use case:

  • Different variations of an algorithm are needed
  • The client does not need to know the algorithm
  • The algorithm should be exchangeable at the run time of a program...

The Template Method -- Rainer Grimm

With or without actual templates:

The Template Method

by Rainer Grimm

From the article:

The key idea of the Template Method is easy to get. You define the skeleton of an algorithm that consists of a few typical steps. Implementation classes can only override the steps but cannot change the skeleton. The steps are often called hook methods...

C and C++ Profiling Tools -- David Faure

When profiling is a good thing:

C/C++ Profiling Tools

by David Faure

From the article:

This blog will give you a brief overview of profiling C and C++ applications. Additionally, it will lay before you all of the tools available, with the purpose of aiding you in choosing the right tools at the right times...

The Proxy Pattern -- Rainer Grimm

Untitled.pngPlaying the classics, at arm's length...

The Proxy Pattern

by Rainer Grimm

From the article:

A proxy controls access to another object, allowing you to perform additional operations before or after you access the original object. Sound familiar?

Which idiom is characteristic of C++? Right: RAII (Resource Acquisition Is Initialization). RAII is the C++ way to implement the Proxy Pattern. Here are the facts about the Proxy Pattern. ...

Using final in C++ to improve performance -- Niall Cooling

Screenshot_2022-11-16_163427.pngWhen having the "last word" makes stuff go faster...

Using final in C++ to improve performance

by Niall Cooling

From the article:

The final specifier was introduced in C++11 to ensure that either a class or a virtual function cannot be further overridden. However, as we shall investigate, this also allows them to perform an optimization known as devirtualization, improving runtime performance.