comparison DEPENDENCIES/generic/include/boost/intrusive/set_hook.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
14 #ifndef BOOST_INTRUSIVE_SET_HOOK_HPP 14 #ifndef BOOST_INTRUSIVE_SET_HOOK_HPP
15 #define BOOST_INTRUSIVE_SET_HOOK_HPP 15 #define BOOST_INTRUSIVE_SET_HOOK_HPP
16 16
17 #include <boost/intrusive/detail/config_begin.hpp> 17 #include <boost/intrusive/detail/config_begin.hpp>
18 #include <boost/intrusive/intrusive_fwd.hpp> 18 #include <boost/intrusive/intrusive_fwd.hpp>
19 #include <boost/intrusive/detail/utilities.hpp> 19
20 #include <boost/intrusive/detail/rbtree_node.hpp> 20 #include <boost/intrusive/detail/rbtree_node.hpp>
21 #include <boost/intrusive/rbtree_algorithms.hpp> 21 #include <boost/intrusive/rbtree_algorithms.hpp>
22 #include <boost/intrusive/options.hpp> 22 #include <boost/intrusive/options.hpp>
23 #include <boost/intrusive/detail/generic_hook.hpp> 23 #include <boost/intrusive/detail/generic_hook.hpp>
24 24
25 #if defined(BOOST_HAS_PRAGMA_ONCE)
26 # pragma once
27 #endif
28
25 namespace boost { 29 namespace boost {
26 namespace intrusive { 30 namespace intrusive {
27
28 /// @cond
29 template<class VoidPointer, bool OptimizeSize = false>
30 struct get_set_node_algo
31 {
32 typedef rbtree_algorithms<rbtree_node_traits<VoidPointer, OptimizeSize> > type;
33 };
34 /// @endcond
35 31
36 //! Helper metafunction to define a \c set_base_hook that yields to the same 32 //! Helper metafunction to define a \c set_base_hook that yields to the same
37 //! type when the same options (either explicitly or implicitly) are used. 33 //! type when the same options (either explicitly or implicitly) are used.
38 #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) 34 #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) || defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
39 template<class ...Options> 35 template<class ...Options>
51 Options... 47 Options...
52 #endif 48 #endif
53 >::type packed_options; 49 >::type packed_options;
54 50
55 typedef generic_hook 51 typedef generic_hook
56 < get_set_node_algo<typename packed_options::void_pointer 52 < rbtree_algorithms<rbtree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size> >
57 ,packed_options::optimize_size>
58 , typename packed_options::tag 53 , typename packed_options::tag
59 , packed_options::link_mode 54 , packed_options::link_mode
60 , RbTreeBaseHookId 55 , RbTreeBaseHookId
61 > implementation_defined; 56 > implementation_defined;
62 /// @endcond 57 /// @endcond
74 //! The same tag value can be used in different classes, but if a class is 69 //! The same tag value can be used in different classes, but if a class is
75 //! derived from more than one \c list_base_hook, then each \c list_base_hook needs its 70 //! derived from more than one \c list_base_hook, then each \c list_base_hook needs its
76 //! unique tag. 71 //! unique tag.
77 //! 72 //!
78 //! \c void_pointer<> is the pointer type that will be used internally in the hook 73 //! \c void_pointer<> is the pointer type that will be used internally in the hook
79 //! and the the container configured to use this hook. 74 //! and the container configured to use this hook.
80 //! 75 //!
81 //! \c link_mode<> will specify the linking mode of the hook (\c normal_link, 76 //! \c link_mode<> will specify the linking mode of the hook (\c normal_link,
82 //! \c auto_unlink or \c safe_link). 77 //! \c auto_unlink or \c safe_link).
83 //! 78 //!
84 //! \c optimize_size<> will tell the hook to optimize the hook for size instead 79 //! \c optimize_size<> will tell the hook to optimize the hook for size instead
183 Options... 178 Options...
184 #endif 179 #endif
185 >::type packed_options; 180 >::type packed_options;
186 181
187 typedef generic_hook 182 typedef generic_hook
188 < get_set_node_algo<typename packed_options::void_pointer 183 < rbtree_algorithms<rbtree_node_traits<typename packed_options::void_pointer, packed_options::optimize_size> >
189 ,packed_options::optimize_size>
190 , member_tag 184 , member_tag
191 , packed_options::link_mode 185 , packed_options::link_mode
192 , NoBaseHookId 186 , NoBaseHookId
193 > implementation_defined; 187 > implementation_defined;
194 /// @endcond 188 /// @endcond
201 //! 195 //!
202 //! The hook admits the following options: \c void_pointer<>, 196 //! The hook admits the following options: \c void_pointer<>,
203 //! \c link_mode<> and \c optimize_size<>. 197 //! \c link_mode<> and \c optimize_size<>.
204 //! 198 //!
205 //! \c void_pointer<> is the pointer type that will be used internally in the hook 199 //! \c void_pointer<> is the pointer type that will be used internally in the hook
206 //! and the the container configured to use this hook. 200 //! and the container configured to use this hook.
207 //! 201 //!
208 //! \c link_mode<> will specify the linking mode of the hook (\c normal_link, 202 //! \c link_mode<> will specify the linking mode of the hook (\c normal_link,
209 //! \c auto_unlink or \c safe_link). 203 //! \c auto_unlink or \c safe_link).
210 //! 204 //!
211 //! \c optimize_size<> will tell the hook to optimize the hook for size instead 205 //! \c optimize_size<> will tell the hook to optimize the hook for size instead