| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- 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 <boost/core/allocator_access.hpp>.
- */
- #include <boost/core/noinit_adaptor.hpp>
- namespace boost {
- template<class A, class T>
- inline void
- alloc_destroy(A& a, T* p)
- {
- boost::allocator_destroy(a, p);
- }
- template<class A, class T>
- inline void
- alloc_destroy_n(A& a, T* p, std::size_t n)
- {
- boost::allocator_destroy_n(a, p, n);
- }
- template<class A, class T>
- 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<class A, class T, class U, class... V>
- inline void
- alloc_construct(A& a, T* p, U&& u, V&&... v)
- {
- boost::allocator_construct(a, p, std::forward<U>(u),
- std::forward<V>(v)...);
- }
- #else
- template<class A, class T, class U>
- inline void
- alloc_construct(A& a, T* p, U&& u)
- {
- boost::allocator_construct(a, p, std::forward<U>(u));
- }
- #endif
- #else
- template<class A, class T, class U>
- inline void
- alloc_construct(A& a, T* p, const U& u)
- {
- boost::allocator_construct(a, p, u);
- }
- template<class A, class T, class U>
- inline void
- alloc_construct(A& a, T* p, U& u)
- {
- boost::allocator_construct(a, p, u);
- }
- #endif
- template<class A, class T>
- inline void
- alloc_construct_n(A& a, T* p, std::size_t n)
- {
- boost::allocator_construct_n(a, p, n);
- }
- template<class A, class T>
- 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<class A, class T, class I>
- 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
|