#pragma once #include "dtcore/inc/dtdefinitions.h" #include "dtcore/inc/dtmemory.h" namespace dt { template struct StdContainerAllocator { typedef T value_type; StdContainerAllocator() = default; template constexpr StdContainerAllocator(const StdContainerAllocator&) noexcept {} T* allocate(std::size_t n); void deallocate(T* p, std::size_t) noexcept; }; template inline T* StdContainerAllocator::allocate(std::size_t n) { return static_cast(DT_ALLOC(T, static_cast(n))); } template inline void StdContainerAllocator::deallocate(T* p, std::size_t) noexcept { DT_FREE(p); } template bool operator==(const StdContainerAllocator &, const StdContainerAllocator &) { return true; } template bool operator!=(const StdContainerAllocator &, const StdContainerAllocator &) { return false; } }