Add memory allocator and a subset of smart pointers #1
+1,122
−192
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.
Summary
As discussed on Discord, this Pull Request mainly adds a memory allocator which is capable of mapping and managing a given memory region and implementations for
shared_ptr
andunqiue_ptr
.I also made the
fix_codestyle
script executable under Linux and reformatted everything with Clang-Format.Goals
Adequate replacement for
std::shared_ptr
andstd::unqiue_ptr
.Free of dependencies.
Lightweight implementation.
Clean and fast code.
Good documentation for Doxygen.
Limitations
Neither the memory allocator nor the smart pointers can be considered thread-safe.
hs::os::Mutex
.No support for heap allocations.
No implementation of
weak_ptr
as I didn't consider it necessary.Only a subset of the smart pointers is actually implemented.