January 2019
Intermediate to advanced
512 pages
14h 5m
English
We should note that the last application of local buffer optimization, storing callables for type-erased objects, is widely used in the C++ standard template library. For example, std::shared_ptr has a type-erased deleter, and most implementations use the local buffer optimization; the deleter is stored with the reference object and not with each copy of the shared pointer, of course. The std::unique_pointer standard, on the other hand, is not type-erased at all, to avoid even a small overhead, or potentially a much larger overhead should the deleter not fit into the local buffer.
The ultimate type-erased object of the C++ standard library, std::function, is also typically implemented with a local ...