Move boost/intrusive to senf/boost_intrusive
[senf.git] / senf / boost_intrusive / linking_policy.hpp
1 /////////////////////////////////////////////////////////////////////////////\r
2 //\r
3 // (C) Copyright Ion GaztaƱaga  2006-2007\r
4 //\r
5 // Distributed under the Boost Software License, Version 1.0.\r
6 //    (See accompanying file LICENSE_1_0.txt or copy at\r
7 //          http://www.boost.org/LICENSE_1_0.txt)\r
8 //\r
9 // See http://www.boost.org/libs/intrusive for documentation.\r
10 //\r
11 /////////////////////////////////////////////////////////////////////////////\r
12 \r
13 #ifndef BOOST_INTRUSIVE_VALUE_LINKING_POLICY_HPP\r
14 #define BOOST_INTRUSIVE_VALUE_LINKING_POLICY_HPP\r
15 \r
16 namespace boost {\r
17 namespace intrusive {\r
18 \r
19 //!This enumeration defines the type of value_traits that can be defined\r
20 //!for Boost.Intrusive containers\r
21 enum linking_policy{\r
22    //!If this linking policy is specified in a value_traits class\r
23    //!as the linking_policy, containers\r
24    //!configured with such value_traits won't set the hooks\r
25    //!of the erased values to a default state. Containers also won't\r
26    //!check that the hooks of the new values are default initialized.\r
27    normal_link,\r
28 \r
29    //!If this linking policy is specified in a value_traits class\r
30    //!as the linking_policy, containers\r
31    //!configured with such value_traits will set the hooks\r
32    //!of the erased values to a default state. Containers also will\r
33    //!check that the hooks of the new values are default initialized.\r
34    safe_mode_link,\r
35 \r
36    //!Same as "safe_mode_link" but the user type is an auto-unlink\r
37    //!type, so the containers with constant-time size features won't be\r
38    //!compatible with value_traits configured with this policy.\r
39    //!Containers also know that the a value can be silently erased from\r
40    //!the container without using any function provided by the containers.\r
41    auto_unlink\r
42 };\r
43 } //namespace intrusive \r
44 } //namespace boost \r
45 \r
46 #endif //BOOST_INTRUSIVE_VALUE_LINKING_POLICY_HPP\r