49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Copyright (C) 2011-2013 Vicente J. Botet Escriba
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  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)
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// See http://www.boost.org/libs/thread for documentation.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_THREAD_DETAIL_MEMORY_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_THREAD_DETAIL_MEMORY_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/config.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/thread/csbl/memory/pointer_traits.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/thread/csbl/memory/allocator_arg.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/thread/csbl/memory/allocator_traits.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/thread/csbl/memory/scoped_allocator.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  namespace thread_detail
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    template <class _Alloc>
							 | 
						||
| 
								 | 
							
								    class allocator_destructor
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      typedef csbl::allocator_traits<_Alloc> alloc_traits;
							 | 
						||
| 
								 | 
							
								    public:
							 | 
						||
| 
								 | 
							
								      typedef typename alloc_traits::pointer pointer;
							 | 
						||
| 
								 | 
							
								      typedef typename alloc_traits::size_type size_type;
							 | 
						||
| 
								 | 
							
								    private:
							 | 
						||
| 
								 | 
							
								      _Alloc alloc_;
							 | 
						||
| 
								 | 
							
								      size_type s_;
							 | 
						||
| 
								 | 
							
								    public:
							 | 
						||
| 
								 | 
							
								      allocator_destructor(_Alloc& a, size_type s)BOOST_NOEXCEPT
							 | 
						||
| 
								 | 
							
								      : alloc_(a), s_(s)
							 | 
						||
| 
								 | 
							
								      {}
							 | 
						||
| 
								 | 
							
								      void operator()(pointer p)BOOST_NOEXCEPT
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        alloc_traits::destroy(alloc_, p);
							 | 
						||
| 
								 | 
							
								        alloc_traits::deallocate(alloc_, p, s_);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  } //namespace thread_detail
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif //  BOOST_THREAD_DETAIL_MEMORY_HPP
							 |