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