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
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
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 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 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
Using The AutoGenerated .NET Core/Standard AssemblyInfo.cs When you create a new .NET Core/.NET Standard project you will get a auto generated set of attributes, which is based on these settings fo…| Sacha's Blog
In this post I want to talk about how to get started with some very nice monitoring tools, namely Prometheus Grafana At the job I was at previously we used these tools a lot. They served as the bac…| Sacha's Blog
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
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
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