And the Winners for the Seven Vouchers for Fedor’s Book “The Art of Writing Efficient Programs” are
I’m happy to present the seven winners in this post including their answers.
This author has not written his bio yet.
But we are proud to say that Rainer Grimm contributed 689 entries already.
I’m happy to present the seven winners in this post including their answers.
The type-traits library is part of C++11 and supports type checks, type comparisons, and type modifications at compile time. The library has over 100 functions but grows with each new C++ standard release. Today, I present the type checks.
First of all, hybrid programming is not an official term. I created it to emphasize an exciting aspect of templates. The difference between function arguments and template arguments.
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.
In my last post, “Template Metaprogramming – How it All Started“, I wrote about the roots of template metaprogramming. I 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 modify types at compile time.
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.
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.
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).
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.
A friend has unrestricted access to the members of a class. Consequently, friendship should be given wisely. Regarding templates, friendship is special.