memory

Overloading Operator new and delete 2

I overloaded in the last post operator new and delete. Therefore, it was possible to find memory leaks and get a first hint of the bad guys. My solution had two not so nice properties. With this post, I will overcome them.

Read more
Comments 4Views: 18600

Overloading Operator new and delete 1

It happens quite to often that a C++ application allocates memory but don't deallocate it. This is the job for operator new and delete. Thanks to them both you can explicitly manage the memory management of an application.

Read more
Add CommentViews: 41418

Explicit Memory Management

Explicit memory management has in C++ a high complexity but also provides a great functionality. Sad to say, but this special domain in not so known in C++. For example, you can directly create objects in static memory, in a reserved area, or even in a memory pool. That is functionality, that is often key in safety critical applications in the embedded world. Before the harvest is the work. Therefore, I will give in this post an overview, before I dive deeper into the details.

Read more
Comments 9Views: 12408

Garbage Collection - No Thanks

C++ is old fashioned. C++ has no garbage collection. No garbage collection? Right! Old fashioned? Wrong!

Read more
Tags: memory
Comments 2Views: 23645

Move Semantic: Two nice Properties

I will talk about two nice properties of the move semantic in this post that are not so often mentioned. Containers of the standard template library (STL) can have non-copyable elements. The copy semantic is the fallback for the move semantic. Irritated? I hope so!

Read more
Tags: memory, move
Comments 3Views: 11840

Copy versus Move Semantic: A few Numbers

A lot was written about the advantages of the move semantic to the copy semantic. Instead of an expensive copy operation you can use a cheap move operation. But, what does that mean? I will compare in this post the performance of the copy and move semantic for the containers the Standard Template Library (STL). 

Read more
Tags: memory, move
Comments 2Views: 22566

std::array - Dynamic Memory, no Thanks

std::array combines the best from two worlds. At one hand, std::array has the size and efficiency of a C array; at the other hand, std::array has the interface of a std::vector. 

Read more
Tags: memory
Comments 11Views: 63021

Automatic Memory Management of the STL Containers

One of the big advantages of C++ string to a C string and of a std::vector to a C arrays is it that both C++ containers automatically manage their memory. Of course, that holds true for all further containers of the Standard Template Library. In this post, I will have a closer look at the automatic memory management of std::vector and std::string.

Read more
Tags: memory
Comments 6Views: 18090

std::weak_ptr

std::unique_ptr models the concept of exclusive ownership, std::shared_ptr the concept of shared ownership. If I stick to this picture then std::weak_ptr models the concept of temporary ownership because it borrows the resource from a std::shared_ptr. There is one dominant reason for having a std::weak_ptr in C++: breaking of cyclic references of std::shared_ptr's.

Read more
Comments 5Views: 26266

Specialities of std::shared_ptr

After I draw the big picture of a std::shared_ptr's in the last post, I want to present two special aspects of this smart pointer in this post. First, I show with std::shared_from_this how to create a std::shared_ptr from an object; second, I'm interested in the question to the answer: Should a function take a std::shared_ptr by copy or by reference? The numbers are quite interesting.

Read more
Comments 1Views: 11074

My Newest E-Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Subscribe to the newsletter (+ pdf bundle)

Blog archive

Source Code

Visitors

Today 3797

All 2882651

Currently are 161 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments