64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								/////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// (C) Copyright Ion Gaztanaga  2006-2013
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// 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/intrusive for documentation.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								/////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_INTRUSIVE_LINK_MODE_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_INTRUSIVE_LINK_MODE_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_HAS_PRAGMA_ONCE)
							 | 
						||
| 
								 | 
							
								#  pragma once
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace intrusive {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//!This enumeration defines the type of value_traits that can be defined
							 | 
						||
| 
								 | 
							
								//!for Boost.Intrusive containers
							 | 
						||
| 
								 | 
							
								enum link_mode_type{
							 | 
						||
| 
								 | 
							
								   //!If this linking policy is specified in a value_traits class
							 | 
						||
| 
								 | 
							
								   //!as the link_mode, containers
							 | 
						||
| 
								 | 
							
								   //!configured with such value_traits won't set the hooks
							 | 
						||
| 
								 | 
							
								   //!of the erased values to a default state. Containers also won't
							 | 
						||
| 
								 | 
							
								   //!check that the hooks of the new values are default initialized.
							 | 
						||
| 
								 | 
							
								   normal_link,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   //!If this linking policy is specified in a value_traits class
							 | 
						||
| 
								 | 
							
								   //!as the link_mode, containers
							 | 
						||
| 
								 | 
							
								   //!configured with such value_traits will set the hooks
							 | 
						||
| 
								 | 
							
								   //!of the erased values to a default state. Containers also will
							 | 
						||
| 
								 | 
							
								   //!check that the hooks of the new values are default initialized.
							 | 
						||
| 
								 | 
							
								   safe_link,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   //!Same as "safe_link" but the user type is an auto-unlink
							 | 
						||
| 
								 | 
							
								   //!type, so the containers with constant-time size features won't be
							 | 
						||
| 
								 | 
							
								   //!compatible with value_traits configured with this policy.
							 | 
						||
| 
								 | 
							
								   //!Containers also know that the a value can be silently erased from
							 | 
						||
| 
								 | 
							
								   //!the container without using any function provided by the containers.
							 | 
						||
| 
								 | 
							
								   auto_unlink
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <link_mode_type link_mode>
							 | 
						||
| 
								 | 
							
								struct is_safe_autounlink
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   static const bool value =
							 | 
						||
| 
								 | 
							
								      (int)link_mode == (int)auto_unlink   ||
							 | 
						||
| 
								 | 
							
								      (int)link_mode == (int)safe_link;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif   //BOOST_INTRUSIVE_DOXYGEN_INVOKED
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} //namespace intrusive
							 | 
						||
| 
								 | 
							
								} //namespace boost
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif //BOOST_INTRUSIVE_LINK_MODE_HPP
							 |