top of page



Welcome to EmbeddedHow
Home: Welcome
Home: Blog2
Search


Smart Pointers: Understanding Ownership, Memory Overhead and Common Pitfalls
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off. — Bjarne Stroustrup Smart pointers are one of the most useful additions introduced in modern C++. Most developers know that smart pointers help prevent memory leaks by automatically releasing dynamically allocated objects. However, understanding the ownership model and memory overhead of different smart pointers is equally important, especially in embedd

Sunil Kumar Yadav
Jun 75 min read
Â
Â
Â


C++ Upcasting and Downcasting Simplified
Inheritance allows us to treat derived class objects as base class objects. This capability forms the foundation of runtime polymorphism in C++. While working with inheritance, you will often come across the terms Upcasting and Downcasting. Introduction In this article, we'll understand what they mean, when they are useful, and why one is generally considered safer than the other. Let's start with a simple inheritance hierarchy. #include <iostream> class Animal { public: vir

Sunil Kumar Yadav
Jun 64 min read
Â
Â
Â


C++ Object Slicing Simplified
Object-oriented programming and polymorphism are fundamental concepts in C++. Most developers learn that virtual functions allow derived classes to provide specialized implementations while interacting through a base class interface. However, there is a subtle issue that can silently break polymorphism: Object Slicing. In this article, we'll understand what object slicing is, why it happens, and how to avoid it using a few simple examples. What is Object Slicing? Object slici

Sunil Kumar Yadav
May 313 min read
Â
Â
Â


Concurrency In C++: How To Avoid Deadlock
In our last couple of articles we've tired to go through the fundamentals of concurrenc y in C++ using Standard Template Library. We've...

Sunil Kumar Yadav
Sep 30, 20245 min read
Â
Â
Â


Concurrency in C++: Sharing Data Between Threads Using Mutex
In my last article C++: Introduction to Concurrency , I've gone through fundaments of concurrency and it's benefits in terms of improving...

Sunil Kumar Yadav
Sep 22, 20245 min read
Â
Â
Â


C++: Introduction to Concurrency
Concurrency in C++ is a powerful feature that enables developers to create applications capable of performing multiple tasks...

Sunil Kumar Yadav
Sep 18, 20246 min read
Â
Â
Â


Debugging Data Race Conditions Using Thread Sanitizer
In past to speed up the execution of software one had to either upgrade the underlying hardware i.e. microcontroller or microprocessor...

Sunil Kumar Yadav
Apr 25, 20224 min read
Â
Â
Â


Understanding C++ Lambda
C++ 11 standard introduced many new features in the C++ language making it truly a modern language. Features introduced since C++11 were...

Sunil Kumar Yadav
Dec 18, 20214 min read
Â
Â
Â


Semantics of C++ Object Destruction
C++ is one of the most popular programming languages which is being used in multiple domains. Its diverse use means it supports many...

Sunil Kumar Yadav
Dec 12, 20214 min read
Â
Â
Â


Face Detection using Haar-Cascade Classifier using OpenCV and C++
Computer vision is a field of study which encompasses how computers see and understand digital images and videos. We are sounded by...

Sunil Kumar Yadav
Nov 28, 20214 min read
Â
Â
Â


What is Dynamic Programming?
As software engineers, our aim is to develop efficient programs to solve given problems. In this process, we come across many programming...

Sunil Kumar Yadav
Nov 28, 20213 min read
Â
Â
Â


Understanding C++ Default Constructor
C++ is one of the most popular programming languages which is being used in multiple domains. Probably there are billions of lines of...

Sunil Kumar Yadav
Nov 6, 20215 min read
Â
Â
Â


Getting Started with OpenCV/C++
With the advancement in silicon technologies, Artificial Intelligence and Image Processing have been used extensively for the last few...

Sunil Kumar Yadav
Oct 24, 20215 min read
Â
Â
Â


Hard Real-Time and C++ Predictability
Hard real-time systems are characterized by their predictability. Such systems are guaranteed to perform intended action in a specified...

Sunil Kumar Yadav
Oct 16, 20215 min read
Â
Â
Â


Understanding the runtime behaviors of C++ programs using uftrace tool
Whether you are an expert programmer or a freshman in university, it's always fascinating to learn how systems work under the hood. Since...

Sunil Kumar Yadav
Oct 3, 20218 min read
Â
Â
Â


gprof: How To Use GNU Profiling Tool?
Efficiency in software engineering is associated with reliability, speed, and programming methodology used in developing software for an...

Sunil Kumar Yadav
Sep 19, 202113 min read
Â
Â
Â


How std::binary_search work with std::list?
The Standard Library allows you to apply the binary_search and lower_bound algorithms to any sorted sequence container, including std::list

Sunil Kumar Yadav
Sep 16, 20212 min read
Â
Â
Â


Why you should use strncmp over strcmp?
The standard library provides many useful functions to ease the job of software engineers. Usually, the standard library provides library...

Sunil Kumar Yadav
Aug 28, 20212 min read
Â
Â
Â


Understanding the C++ Chrono library
C++ Chrono library deals with date and time. This library was designed considering the fact that timers and clocks might be different on...

Sunil Kumar Yadav
Aug 16, 20212 min read
Â
Â
Â
Home: Subscribe
Home: Contact
bottom of page