Entries by Rainer Grimm

Automatic Return Type (C++98)

Depending on the used C++ standard, there are different ways to return the correct return type of a function template. In this post, I start with traits (C++98), continue in my next post with C++11/14, and end with concepts (C++20).

Dependent Names

A dependent name is essentially a name that depends on a template parameter. A dependent name can be a type, a non-type, or a template parameter. To express that a dependent name stands for a type or a template, you have to use the keywords typename or template.

From Variadic Templates to Fold Expressions

In my last two posts, “Variadic Templates or the Power of Three Dots” and “More about Variadic Templates“, I introduced variadic templates. This post goes one step further in the future, and presents fold expressions that can directly reduce a parameter pack with a binary operator.

The First Big Update of My C++20 Book

I’m happy to announce the first big update of my C++20 book. The update was mainly due to the improved C++ compiler support of C++20. The update includes concepts, the ranges library, modules, the three-way comparison operator, the format library, and the chrono library.