Learn the ways to iterate in a reverse order on a container - C++11 to C++20 with a custom, easy to use, method to allow a reverse iterations in a simple way prior to C++20 and without the ranges library.| C++ Senioreas
How can the compiler help our code to run faster, and how can it generate some warnings in a single cross-compilers way?| C++ Senioreas
Communicate with GCC compiler using GCC specific compiler pragmas.| C++ Senioreas
One of the first mistakes that every developer doe is to believe in the theoretical idea that behind "Random". The absolutely unexpected arbitrary result of some unexpected mysterious function. What random really is, and how do we use it the right way on C++?| C++ Senioreas
C++20 Ranges library. What are the ranges. how to use them, what mistakes should we avoid and how to apply ranges on custom collections.| C++ Senioreas
Contributing a C++ compiler personal experience details.| C++ Senioreas
How many times you find yourself writing hard-coded numbers inside your code, while trying to make sure as much as you can to make these numbers' units visible? You probably found yourself mentioning the units as part of the variable name, or at the comment, praying that who ever gets to your code will understand it. After reading this article, you will have the most maintainable way of doing so.| C++ Senioreas
The third part of the iterators series. Maintain your iterations with your own containers collections. How can you create an iterators friendly collection to fit your legacy iterators-friendly code infrastructure? Create new custom iterator types in C++20.| C++ Senioreas
The second part of the iterators series. Iterators might be a dangerous thing sometimes. What is the risk they bring with them, and how to prepare to / deal with it?| C++ Senioreas
The first part of iterators explanation. Why should you use iterators? Which kinds of iterators exist? How can iterators help you to maintain and optimize your code? And what is the secret behind iterators?| C++ Senioreas
The second part of lambda expressions explanation. Behind the scenes of lambda expressions: What lambda expressions truly are? How can they capture variables? How can we use auto params in C++14 lambdas when this feature came only in C++20? Behind the scenes from C++11 to C++20 of lambdas.| C++ Senioreas
Lambda expressions usages in C++ since C++11 to C++20. Features, rules, usages and abilities. Why do we need it, and how can we get more maintainable code by using it?| C++ Senioreas
How to create a collection of a template base class? How to create a single collection for multiple similar interfaces? Based on Sean Parent talk "Inheritance Is The Base Class of Evil".| C++ Senioreas
The 11th post in C++ meta programming series. What is SFINAE? How and When to use it? And when should we avoid using it?| C++ Senioreas
The 10th post in C++ meta programming series. How to use compile-time functions from C++11 to C++20? How to define user-defined compile-time types? What is constexpr and how does it tie up all of the above?| C++ Senioreas
The 9th post in C++ meta programming series. How to protect our solution from less experienced developers in variadic template development cases? Restrictions over variadic params from C++11 to C++20.| C++ Senioreas
The 8th post in C++ meta programming series. What is the problem with a generic solution? Why should we pay extra attention when we solve a problem in a generic way? And how to protect our solution from less experienced developers?| C++ Senioreas
The 7th post in C++ meta programming series. Learn about variadic templates in C++17- How does C++17 helps us handle them, when to use / don't use fold expressions, and what things we need to draw a close attention to when we use them?| C++ Senioreas
The 6th post in C++ meta programming series. Learn about variadic templates- How to use them, and about how to make the code more flexible and maintainable with them.| C++ Senioreas
This is the 5th post in C++ meta programming series. Learn about explicit & partial template specializations in C++, and about the differences between them.| C++ Senioreas
Separation of templates functions/classes declarations from definitions always raise a common issue at the first time. Read about the reasons for this issue, and how to solve it.| C++ Senioreas
This is the third post in C++ meta programming series. Learn about basic non-type template parameters, template of templates, and passing functions as template parameters.| C++ Senioreas
This is the second post in C++ meta programming series. Learn about basic templates usage, why it's needed, and how can it help you writing a generic code.| C++ Senioreas
Why does C++ meta programming is so important and powerful? This is a short introduction to C++ meta programming, it's abilities, and strengths. The first article in a series about C++ meta programming.| C++ Senioreas
You got an idea, know some languages, have some techniques, so what are you waiting for?! Go and code up your idea! But… Is there a better/right way? Should you take something into considerat…| C++ Senioreas
In C++, Argument-Dependent Lookup (ADL) can be a tempting feature to use for cleaner code, but its reliance on context-specific resolution often leads to unexpected behavior. While ADL may seem lik…| C++ Senioreas
The comma operator in C++ allows you to evaluate two expressions in a single statement. It evaluates the first expression, discards its result, and then evaluates the second expression, returning i…| C++ Senioreas
Daisy Hollman is an extremely talented developer, who is highly involved in many advanced fields of C++. She is a very close friend of mine, and I highly encourage you to go and check her stream: Good luck Daisy 🩷| C++ Senioreas
From Modern to Unbelievably Modern C++ talk YouTube recording. All the reasons to migrate into a modern C++ standard version.| C++ Senioreas
const qualifier not always work the way we expect it to. In this article we will see some cases when the const doesn’t protect us from modifications at all.| C++ Senioreas
Fold-expressions in the extreme. How do fold-expressions behave when there is no arguments? what about a single argument case?| C++ Senioreas
std::string_view can optimize both performance and code readability in code sections which handle strings. However it can also lead to UB and to memory issues if used incorrectly.| C++ Senioreas
explicit(bool) C++20 feature discussion, motivation, usage example, proposal and more. Basic explanation about explicit and implicit conversions pros and cons.| C++ Senioreas
You can now discuss about new articles, offer ideas for the next posts, and get updates about the blog on our new Discord server and Telegram channel. Stay tuned!| C++ Senioreas
The Shared View riddle solution. Involves usage example of shared_ptr aliasing constructor, design patterns reflection and factory, metaprogramming, string_view and variant/visit.| C++ Senioreas
C++ Riddle – involves shared_ptr, string_view and some metaprogramming.| C++ Senioreas
How to save bytes and alignment when containing some types inside a structure. Techniques to avoid wasting space on unique_ptr deleter and on another structures allocators like std vector or map. T…| C++ Senioreas
unique_ptr and weak_ptr constructors, initializers and usage examples. make_unique advantages and disadvantages. unique_ptr custom deleters usage examples and important notes to pay attention to.| C++ Senioreas
Shared ptr allocations, initializations, and behind the scenes functionality. Constructors’ usage summaries, the aliasing conatructor, make_shared & allocate_shared advantages and disadva…| C++ Senioreas
Smart memory management – the ability to maintain pointers “without worrying when they should be released” sounds really utopic, but is it really the entire truth about “sma…| C++ Senioreas
One of the most desired Design Patterns is reflection- The ability to use classes metadata (names, functions, properties, etc…) at runtime. By default this is not possible on C++, and sometim…| C++ Senioreas
Design Patterns were always different in C++, and a usual use of these patterns in C++ might cause more complications and problems in this language. In this series of articles, I’ll show how to cor…| C++ Senioreas
Design Patterns were always different in C++, and a usual use of these patterns in C++ might cause more complications and problems in this language. In this series of articles, I’ll show how …| C++ Senioreas
Conditions are the most natural way to control your code flow in programming, it’s almost the first thing that every programmer learn at the beginning. Sometimes conditions, especially if you…| C++ Senioreas
From Modern to Unbelievably Modern C++ CoreC++ talk – experience summarize, and self opinions.| C++ Senioreas