1 ////////////////////////////////////////////////////////////////////////////// 2 // 3 // (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost 4 // Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 // 7 // See http://www.boost.org/libs/container for documentation. 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 11 #ifndef BOOST_CONTAINER_DETAIL_POOL_COMMON_HPP 12 #define BOOST_CONTAINER_DETAIL_POOL_COMMON_HPP 13 14 #ifndef BOOST_CONFIG_HPP 15 # include <boost/config.hpp> 16 #endif 17 18 #if defined(BOOST_HAS_PRAGMA_ONCE) 19 # pragma once 20 #endif 21 22 #include <boost/container/detail/config_begin.hpp> 23 #include <boost/container/detail/workaround.hpp> 24 25 #include <boost/intrusive/slist.hpp> 26 27 namespace boost { 28 namespace container { 29 namespace dtl { 30 31 template<class VoidPointer> 32 struct node_slist 33 { 34 //This hook will be used to chain the individual nodes 35 typedef typename bi::make_slist_base_hook 36 <bi::void_pointer<VoidPointer>, bi::link_mode<bi::normal_link> >::type slist_hook_t; 37 38 //A node object will hold node_t when it's not allocated 39 typedef slist_hook_t node_t; 40 41 typedef typename bi::make_slist 42 <node_t, bi::linear<true>, bi::cache_last<true>, bi::base_hook<slist_hook_t> >::type node_slist_t; 43 }; 44 45 template<class T> 46 struct is_stateless_segment_manager 47 { 48 static const bool value = false; 49 }; 50 51 } //namespace dtl { 52 } //namespace container { 53 } //namespace boost { 54 55 #include <boost/container/detail/config_end.hpp> 56 57 #endif //#ifndef BOOST_CONTAINER_DETAIL_ADAPTIVE_NODE_POOL_IMPL_HPP 58