Template Metaprogramming - Hybrid Programming

First of all, hybrid programming is not an official term. I created it to emphasize a very interesting aspect of templates. The difference between function arguments and template arguments.

Read more
Views: 8098

Seven Voucher for Fedor G. Pikus Book "The Art of Writing Efficient Programs"

I'm happy to announce that I have to offer five vouchers for a digital and two vouchers for a printed issue of Fedor G. Pikus book "The Art of Writing Efficient Programs". The sponsor of these coupons is Packt.

Read more
Views: 4954

Template Metaprogramming - How it Works

In my last post "Template Metaprogramming - How it All Started", I wrote about the roots of template metaprogramming and presented the hello world of template metaprogramming: calculating the factorial of a number at compile time. In this post, I will write about, how template metaprogramming can be used to modify types at compile time.

Read more
Views: 9732

Template Metaprogramming - How it All Started

Metaprogramming is programming on programs. C++ applies metaprogramming at compile time. It started in C++98 with template metaprogramming, was formalized in C++11 with the type-traits library, and since C++11 has steadily improved. The main driving force is constant expressions. In this post, I want to write about its roots.

Read more
Views: 13713

Automatic Return Type (C++11/14/20)

I started my discussion about the  "Automatic Return Type (C++98)" in my last post. Today, I'm faced with the same challenge but solve it with C++11, C++14, and C++20.

Read more
Tags: auto
Views: 27957

Automatic Return Type (C++98)

Depending on the used C++ standard, there are different ways to return the right 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).

Read more
Tags: auto
Views: 17687

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.

Read more
Views: 15860

The Special Friendship of Templates

A friend has unrestricted access to the members of a class. Consequently, friendship should be given wisely. Regarding templates, friendship is special.

Read more
Views: 8504

Visiting a std::variant with the Overload Pattern

Typically, you use the overload pattern for a std::variant. std::variant is a type-safe union. A std::variant (C++17) has one value from one of its types. std::visit allows you to apply a visitor to it. Exactly here comes the overload pattern very handy into play.

Read more
Views: 57449

Smart Tricks with Parameter Packs and Fold Expressions

To complete my post about variadic templates and fold expressions, I present in this post smart tricks using parameter packs and fold expressions.

Read more
Views: 26289

Mentoring

Stay Informed about my Mentoring

 

English Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Course: C++ Fundamentals for Professionals

Interactive Course: The All-in-One Guide to C++20

Subscribe to the newsletter (+ pdf bundle)

Blog archive

Source Code

Visitors

Today 5946

Yesterday 7363

Week 21306

Month 53382

All 11348796

Currently are 599 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments