/* Copyright 2019 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_CORE_ALLOC_CONSTRUCT_HPP #define BOOST_CORE_ALLOC_CONSTRUCT_HPP /* This functionality is now in . */ #include namespace boost { template inline void alloc_destroy(A& a, T* p) { boost::allocator_destroy(a, p); } template inline void alloc_destroy_n(A& a, T* p, std::size_t n) { boost::allocator_destroy_n(a, p, n); } template inline void alloc_construct(A& a, T* p) { boost::allocator_construct(a, p); } #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template inline void alloc_construct(A& a, T* p, U&& u, V&&... v) { boost::allocator_construct(a, p, std::forward(u), std::forward(v)...); } #else template inline void alloc_construct(A& a, T* p, U&& u) { boost::allocator_construct(a, p, std::forward(u)); } #endif #else template inline void alloc_construct(A& a, T* p, const U& u) { boost::allocator_construct(a, p, u); } template inline void alloc_construct(A& a, T* p, U& u) { boost::allocator_construct(a, p, u); } #endif template inline void alloc_construct_n(A& a, T* p, std::size_t n) { boost::allocator_construct_n(a, p, n); } template inline void alloc_construct_n(A& a, T* p, std::size_t n, const T* l, std::size_t m) { boost::allocator_construct_n(a, p, n, l, m); } template inline void alloc_construct_n(A& a, T* p, std::size_t n, I b) { boost::allocator_construct_n(a, p, n, b); } } /* boost */ #endif