Add best::box and rename best::object_ptr to best::ptr; add best::vptr and best::vbox
#26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch adds a bunch of pointer-related stuff. In summary:
best::box<T>,best::box<T[]>, andbest::vbox<T>are nicerstd::unique_ptrreplacements.best::ptr<T>got a facelift: the copying/moving functions have been updated to be the canonical generic memcpy entrypoitns.best::vptr<T>andbest::vtableare necessary to implement virtual pointers that use thebest::mallocallocator. Unlike C++ virtual pointers, they carry sufficient information for making it possible to (fallibly) copy abest::vbox<T>and to stride abest::vptr<T>. Although NYI, this makesbest::vbox<T[]>a posibility.bytes.his gone: its functionality now lives inbest::ptrandbest::span.best::span<T>now lives underbest/memory.best::vec<T>andbest::box<T[]>are inter-convertible.best::mallocnow uses allocator cookies in debug mode to ensure sized delete is used correctly.Although not tested yet, all of the above has custom allocator support. I need to implement
best::arenaor similar and add tests forbest::box<T, best::arena&>and friends.