⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread_heap_alloc.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
// Distributed under the Boost Software License, Version 1.0. (See// accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)// (C) Copyright 2008 Anthony Williams#ifndef THREAD_HEAP_ALLOC_PTHREAD_HPP#define THREAD_HEAP_ALLOC_PTHREAD_HPP#include <boost/config/abi_prefix.hpp>namespace boost{    namespace detail    {        template<typename T>        inline T* heap_new()        {            return new T();        }#ifdef BOOST_HAS_RVALUE_REFS        template<typename T,typename A1>        inline T* heap_new(A1&& a1)        {            return new T(static_cast<A1&&>(a1));        }        template<typename T,typename A1,typename A2>        inline T* heap_new(A1&& a1,A2&& a2)        {            return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2));        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1&& a1,A2&& a2,A3&& a3)        {            return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2),                         static_cast<A3&&>(a3));        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1&& a1,A2&& a2,A3&& a3,A4&& a4)        {            return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2),                         static_cast<A3&&>(a3),static_cast<A4&&>(a4));        }#else        template<typename T,typename A1>        inline T* heap_new_impl(A1 a1)        {            return new T(a1);        }        template<typename T,typename A1,typename A2>        inline T* heap_new_impl(A1 a1,A2 a2)        {            return new T(a1,a2);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new_impl(A1 a1,A2 a2,A3 a3)        {            return new T(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new_impl(A1 a1,A2 a2,A3 a3,A4 a4)        {            return new T(a1,a2,a3,a4);        }        template<typename T,typename A1>        inline T* heap_new(A1 const& a1)        {            return heap_new_impl<T,A1 const&>(a1);        }        template<typename T,typename A1>        inline T* heap_new(A1& a1)        {            return heap_new_impl<T,A1&>(a1);        }                template<typename T,typename A1,typename A2>        inline T* heap_new(A1 const& a1,A2 const& a2)        {            return heap_new_impl<T,A1 const&,A2 const&>(a1,a2);        }        template<typename T,typename A1,typename A2>        inline T* heap_new(A1& a1,A2 const& a2)        {            return heap_new_impl<T,A1&,A2 const&>(a1,a2);        }        template<typename T,typename A1,typename A2>        inline T* heap_new(A1 const& a1,A2& a2)        {            return heap_new_impl<T,A1 const&,A2&>(a1,a2);        }        template<typename T,typename A1,typename A2>        inline T* heap_new(A1& a1,A2& a2)        {            return heap_new_impl<T,A1&,A2&>(a1,a2);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3)        {            return heap_new_impl<T,A1 const&,A2 const&,A3 const&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3)        {            return heap_new_impl<T,A1&,A2 const&,A3 const&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3)        {            return heap_new_impl<T,A1 const&,A2&,A3 const&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1& a1,A2& a2,A3 const& a3)        {            return heap_new_impl<T,A1&,A2&,A3 const&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3)        {            return heap_new_impl<T,A1 const&,A2 const&,A3&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1& a1,A2 const& a2,A3& a3)        {            return heap_new_impl<T,A1&,A2 const&,A3&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1 const& a1,A2& a2,A3& a3)        {            return heap_new_impl<T,A1 const&,A2&,A3&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3>        inline T* heap_new(A1& a1,A2& a2,A3& a3)        {            return heap_new_impl<T,A1&,A2&,A3&>(a1,a2,a3);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4 const& a4)        {            return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4 const& a4)        {            return heap_new_impl<T,A1&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4 const& a4)        {            return heap_new_impl<T,A1 const&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4 const& a4)        {            return heap_new_impl<T,A1&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4 const& a4)        {            return heap_new_impl<T,A1 const&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4 const& a4)        {            return heap_new_impl<T,A1&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4 const& a4)        {            return heap_new_impl<T,A1 const&,A2&,A3&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2& a2,A3& a3,A4 const& a4)        {            return heap_new_impl<T,A1&,A2&,A3&,A4 const&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4& a4)        {            return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4& a4)        {            return heap_new_impl<T,A1&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4& a4)        {            return heap_new_impl<T,A1 const&,A2&,A3 const&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4& a4)        {            return heap_new_impl<T,A1&,A2&,A3 const&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4& a4)        {            return heap_new_impl<T,A1 const&,A2 const&,A3&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4& a4)        {            return heap_new_impl<T,A1&,A2 const&,A3&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4& a4)        {            return heap_new_impl<T,A1 const&,A2&,A3&,A4&>(a1,a2,a3,a4);        }        template<typename T,typename A1,typename A2,typename A3,typename A4>        inline T* heap_new(A1& a1,A2& a2,A3& a3,A4& a4)        {            return heap_new_impl<T,A1&,A2&,A3&,A4&>(a1,a2,a3,a4);        }        #endif                template<typename T>        inline void heap_delete(T* data)        {            delete data;        }        template<typename T>        struct do_heap_delete        {            void operator()(T* data) const            {                detail::heap_delete(data);            }        };    }}#include <boost/config/abi_suffix.hpp>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -