Overview
Syllabus
Intro
Outline
Rules for std::vector reallocation
Relocating trivially copyable types
Relocating non-trivial types
Algorithm uninitialized_relocate
Optimizing uninitialized_relocate
By the way: convenience helpers
Two new customization points
Implementing allocator_traits::htcad
TLDR / dependency graph
Benchmark results
Motivating "comparison"
Compiler support required?
Compiler support attained(?)
Another problem: naming
What is the meaning of "trivial"?
Motivating "tombstones"
Design criteria
One new traits class
Specialization for string
Specialization for bool
optional uses tombstone_traits
Recursing on tombstone_traits
Benchmark design
Taught by
CppNow