/Src/Dependencies/Boost/boost/interprocess/allocators/detail/node_tools.hpp
http://hadesmem.googlecode.com/ · C++ Header · 50 lines · 27 code · 12 blank · 11 comment · 1 complexity · 6f3355bf9fd257b15a7a32d86b13d1d1 MD5 · raw file
- //////////////////////////////////////////////////////////////////////////////
- //
- // (C) Copyright Ion Gaztanaga 2007-2009. 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/interprocess for documentation.
- //
- //////////////////////////////////////////////////////////////////////////////
- #ifndef BOOST_INTERPROCESS_DETAIL_NODE_TOOLS_HPP
- #define BOOST_INTERPROCESS_DETAIL_NODE_TOOLS_HPP
- #if (defined _MSC_VER) && (_MSC_VER >= 1200)
- # pragma once
- #endif
- #include <boost/interprocess/detail/config_begin.hpp>
- #include <boost/interprocess/detail/workaround.hpp>
- #include <boost/intrusive/slist.hpp>
- namespace boost {
- namespace interprocess {
- namespace detail {
- template<class VoidPointer>
- struct node_slist
- {
- //This hook will be used to chain the individual nodes
- typedef typename bi::make_slist_base_hook
- <bi::void_pointer<VoidPointer>, bi::link_mode<bi::normal_link> >::type slist_hook_t;
- //A node object will hold node_t when it's not allocated
- struct node_t
- : public slist_hook_t
- {};
- typedef typename bi::make_slist
- <node_t, bi::linear<true>, bi::base_hook<slist_hook_t> >::type node_slist_t;
- };
- } //namespace detail {
- } //namespace interprocess {
- } //namespace boost {
- #include <boost/interprocess/detail/config_end.hpp>
- #endif //#ifndef BOOST_INTERPROCESS_DETAIL_NODE_TOOLS_HPP