Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying C++ Memory Management
  • Table Of Contents Toc
C++ Memory Management

C++ Memory Management

By : Patrice Roy
3.8 (4)
close
close
C++ Memory Management

C++ Memory Management

3.8 (4)
By: Patrice Roy

Overview of this book

Memory management in C++ isn't one-size-fits-all; real-time systems, games, and embedded applications each present unique memory constraints. This book delivers targeted solutions for each domain. Written by ISO C++ Standards Committee member, Patrice Roy, this guide covers fundamental concepts of object lifetime and memory organization to help you write simpler and safer programs. You’ll learn how to control memory allocation mechanisms, create custom containers and allocators, and adapt allocation operators to suit your specific requirements, making your programs smaller, faster, safer, and more predictable. From core principles to modern facilities that simplify your work, you’ll master memory management mechanics, build tailored memory solutions for your application needs, and measure their impact on your program’s behavior. By the end of this book, you’ll be able to write secure programs that handle memory optimally for your application domain. You will also have a strong grasp of both high-level abstractions for safer programs and low-level abstractions that allow detailed customization.
Table of Contents (23 chapters)
close
close
Lock Free Chapter
1
Part 1: Memory in C++
5
Part 2: Implicit Memory Management Techniques
9
Part 3: Taking Control (of Memory Management Mechanisms)
15
Part 4: Writing Generic Containers (and a Bit More)

Writing your own (naïve) unique_ptr

We will first try a simple, homegrown version of std::unique_ptr<T>. As mentioned at the beginning of this chapter, our goal is to develop an intuition for the kind of code required to write such a type and not to encourage you to try to replace the standard facilities: they exist, they work, they are tested, use them. Oh, and they use many cool tricks we cannot explore in this book as we want to keep the book’s size under control!

Type signature

As mentioned in Chapter 5, unique_ptr<T> does not really exist as the type is, in fact, unique_ptr<T,D>, where D defaults to default_deleter<T>.

We will cover both forms (scalar and array) of unique_ptr. The reason for these two specializations is that for T[], we will want unique_ptr to expose operator[] but we will not want to expose this for a scalar T type.

Let’s start with the basic deleter types we will offer. Note that users can supply other deleter...

CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
C++ Memory Management
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon