Last week I tried to fix some bugs in Clang, just to see how it would work out. I had found some issues related to consteval functions and had been sending micro fixes in review requests. I’ve m...
Reflection in C++
One of the problems in C++ is lack of reflection. Reflection is the ability of the program to “understand” its structure. For example - getting the class name, list of methods, adding the methods d...
Use templates in any unclear situation
There are two problems that often appear in real world and can be solved with the same tool. Let’s say we have a function that takes… A variable of a very long typename, that has to be written...
Garbage Collector
There are C++ projects with garbage collection. For example, the Blink browser engine (part of Chrome). It’s a monolithic project, where dependencies between different objects are so hard that it ...
Need for speed!
When comparing C++ with other popular languages (Python, Java, C#, etc.), it comes clear that adequately written programs on C++ almost surely will be faster than the analogous programs on the othe...
Dormitory pointers
Let’s say we want to have a function that returns an object with some boolean flags in addition. These flags serve as the object’s characterictics. Then we should have something like this: template...
Immutable classes for API data (a practical advice)
Let’s say you’re programming an online advertisement system for a fastfood restaurants corporation 🍟🍔🍕🥤. You need to show the top-5 most suitable meals. There is a pretty hard formula of suitabilit...
How compilers implement NRVO?
The meaning of NRVO If you don’t know what NRVO means, there is a nice documentation on cppreference. The NRVO (Named Return Value Optimization) is a copy elision optimization. Copy elision is a ...
Alternative operator representations
Long time ago, some really strange characters encodings were used. For example, a character encoding for the German language DIN 66003 was in use from 1974 to 1999. It was created by modifying the...
Welcome to the C++95 blog!
Welcome everyone! Thank you all who came here to learn something interesting about C++! In this blog I will write small posts about interesting facts, advices, rare language possibilities, compile...