diff options
Diffstat (limited to 'euler/include/std/allocator.hpp')
-rw-r--r-- | euler/include/std/allocator.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/euler/include/std/allocator.hpp b/euler/include/std/allocator.hpp new file mode 100644 index 0000000..32ba005 --- /dev/null +++ b/euler/include/std/allocator.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include <euler/heap.hpp> + +namespace std { + + template <class T> + struct allocator { + + using value_type = T; + + constexpr allocator() noexcept {} + constexpr allocator(const allocator &other) noexcept {} + + template <class U> + constexpr allocator(const allocator<U> &other) noexcept {} + + constexpr ~allocator() {} + + constexpr T *allocate(size_t n) { + return (T *)euler::heap::get_block(n * sizeof(T)); + } + + constexpr void deallocate(T *p, size_t n) { + euler::heap::return_block(p, n * sizeof(T)); + } + + }; + +} |