/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright 2018 Danny Robson */ #pragma once #include namespace cruft::alloc { template struct std { using value_type = ValueT; using size_type = ::std::size_t; using difference_type = ::std::ptrdiff_t; [[nodiscard]] ValueT* allocate (::std::size_t n) { return m_allocator.allocate (n * sizeof (ValueT), alignof (ValueT)); } void deallocate (ValueT *ptr, ::std::size_t n) { m_allocator.deallocate (ptr, n * sizeof (ValueT), alignof (ValueT)); } private: AllocatorT m_allocator; }; }