Type Erasure

Type erasure based on templates is a pretty sophisticated technique. It allows you to bridge dynamic polymorphism (object orientation) with static polymorphism (templates).

Read more
Views: 6446

A std::advance Implementation with C++98, C++17, and C++20

In my last post, I presented a possible std::advance implementation based on tag dispatching. One of my readers mentioned that I could also implement std::advance based on constexpr if, or concepts. His right. So let's do it.

Read more
Views: 5482

Software Design with Traits and Tag Dispatching

Tag Dispatching enables it to choose a function based on the type characteristics. This decision takes place at compile time and is based on traits.

Read more
Views: 4544

Policy

Thanks to templates, there are new ways of software design. Policies and traits are two commonly used idioms in C++.

Read more
Views: 5359

Avoiding Temporaries with Expression Templates

Expression templates are typically used in linear algebra and are  "structures representing a computation at compile-time, which structures are evaluated only as needed to produce efficient code for the entire computation" (https://en.wikipedia.org/wiki/Expression_templates). In other words, expression templates are only evaluated when needed. 

Read more
Views: 3578

Mixins

In my previous  post "More about Dynamic and Static Polymorphism", I used the Curiously Recurring Template Pattern (CRTP) to implement static polymorphism. Another typical use case for CRTP are mixins.

Read more
Views: 7944

More about Dynamic and Static Polymorphism

In my last post "Dynamic and Static Polymorphism", I introduced dynamic polymorphism. Today, I continue with static polymorphism and present are very interesting idiom in C++: curiously recurring template pattern (CRTP).

Read more
Views: 11092

Dynamic and Static Polymorphism

Polymorphism is the property that different types support the same interface. In C++, we distinguish between dynamic polymorphism and static polymorphism.

Read more
Views: 15496

constexpr if

In today's post, I want to introduce a very interesting C++17 feature: constexpr if. constexpr if enables it to conditionally compile source code and can also be used for nice tricks at compile time.

Read more
Views: 6393

constexpr and consteval Functions in C++20

With C++20, constexpr became way more powerful. Additionally, we have  consteval functions in C++20 that are quite similar to constexpr functions.

Read more
Views: 7705

My Newest E-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 3571

Yesterday 6282

Week 3571

Month 21610

All 9743853

Currently are 240 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments