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: 8335

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: 7164

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: 5008

Policy

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

Read more
Views: 5964

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: 3921

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: 9293

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: 13162

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: 19115

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: 7534

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: 8644

Mentoring: Fundamentals for C++ Professionals

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 3248

Yesterday 6209

Week 23371

Month 120643

All 10060890

Currently are 170 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments