CNow 2018 Arthur ODwyer “An Allocator is a Handle to a Heap”











>> YOUR LINK HERE: ___ http://youtube.com/watch?v=0MdSJsCTRkY

http://cppnow.org • — • Presentation Slides, PDFs, Source Code and other presenter materials are available at: http://cppnow.org/history/2018/talks/ • — • C++17 introduced the std::pmr framework. In this framework, a std::pmr::polymorphic_allocator<T> holds a pointer to a std::pmr::memory_resource. The memory resource is in charge of managing and organizing the heap itself, and the allocator object is just a thin handle pointing to the memory resource. • This is not just a convenient implementation strategy for std::pmr! Rather, this elucidates the true meaning of the Allocator concept which has existed, unchanged, since C++98. An Allocator is a handle to a MemoryResource. Even std::allocator can — and should — be viewed as a handle to a global singleton heap , and not as a MemoryResource in its own right. • From this core insight we derive many corollaries, such as the need for allocator types to be lightweight and efficiently copyable, the fundamental impossibility of implementing an in-place std::vector via stupid allocator tricks, and the philosophical underpinnings of rebinding. • We'll show at least two non-standard examples of types modeling Allocator that act as different kinds of handles to heaps: a `shmem_allocator` that holds a `shmem_ptr` to a memory resource, and a `shutdown_safe_allocator` that holds a `weak_ptr` to a memory resource. • Time permitting, we'll • discuss what we can expect from a moved-from allocator object • relate the notion of handle to neighboring notions such as façade and adaptor • suggest similarities between allocator/heap and executor/execution-context • — • Videos Filmed Edited by Bash Films: http://www.BashFilms.com • --- • *--* • ---

#############################









New on site
Content Report
Youtor.org / YTube video Downloader © 2025

created by www.youtor.org