Explore the intricacies and potential drawbacks of C++17's std::pmr (polymorphic memory resource) in this comprehensive conference talk from C++Now 2018. Delve into how polymorphic allocators interact with move semantics, unit testing, performance, developer productivity, and reliability in large codebases. Gain insights on fragmentation, complexity, synchronized and unsynchronized pools, logging resources, and setting default resources. Examine code examples demonstrating undefined behavior, exception safety, and polymorphic allocator awareness. Learn about the "PMR Dirty Little Secret" and receive concrete recommendations for when and how to use std::pmr effectively in your projects. Whether you're new to allocators or an experienced developer, acquire valuable knowledge about the subtle consequences of polymorphic allocator use at scale.
Overview
Syllabus
Introduction
Trick question
Read the code
Outline
Fragmentation
Complexity
Synchronized Pool
Unsynchronized Pool
Logging Resource
Setting Default Resource
Example
Undefined Behavior
Exception Safety
Polymorphic
Alligator Awareness
Default constructor
PMR Dirty Little Secret
Taught by
CppNow