Mercurial > hg > vamp-build-and-test
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 |