mirror of
https://git.suyu.dev/suyu/ext-boost.git
synced 2025-12-23 15:54:12 +01:00
Add container library (for static_vector)
This commit is contained in:
parent
b060148c08
commit
7dabdd81b0
166 changed files with 77078 additions and 0 deletions
63
boost/intrusive/link_mode.hpp
Normal file
63
boost/intrusive/link_mode.hpp
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (C) Copyright Ion Gaztanaga 2006-2013
|
||||
//
|
||||
// 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/intrusive for documentation.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef BOOST_INTRUSIVE_LINK_MODE_HPP
|
||||
#define BOOST_INTRUSIVE_LINK_MODE_HPP
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# pragma once
|
||||
#endif
|
||||
|
||||
namespace boost {
|
||||
namespace intrusive {
|
||||
|
||||
//!This enumeration defines the type of value_traits that can be defined
|
||||
//!for Boost.Intrusive containers
|
||||
enum link_mode_type{
|
||||
//!If this linking policy is specified in a value_traits class
|
||||
//!as the link_mode, containers
|
||||
//!configured with such value_traits won't set the hooks
|
||||
//!of the erased values to a default state. Containers also won't
|
||||
//!check that the hooks of the new values are default initialized.
|
||||
normal_link,
|
||||
|
||||
//!If this linking policy is specified in a value_traits class
|
||||
//!as the link_mode, containers
|
||||
//!configured with such value_traits will set the hooks
|
||||
//!of the erased values to a default state. Containers also will
|
||||
//!check that the hooks of the new values are default initialized.
|
||||
safe_link,
|
||||
|
||||
//!Same as "safe_link" but the user type is an auto-unlink
|
||||
//!type, so the containers with constant-time size features won't be
|
||||
//!compatible with value_traits configured with this policy.
|
||||
//!Containers also know that the a value can be silently erased from
|
||||
//!the container without using any function provided by the containers.
|
||||
auto_unlink
|
||||
};
|
||||
|
||||
#ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
|
||||
template <link_mode_type link_mode>
|
||||
struct is_safe_autounlink
|
||||
{
|
||||
static const bool value =
|
||||
(int)link_mode == (int)auto_unlink ||
|
||||
(int)link_mode == (int)safe_link;
|
||||
};
|
||||
|
||||
#endif //BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
||||
|
||||
} //namespace intrusive
|
||||
} //namespace boost
|
||||
|
||||
#endif //BOOST_INTRUSIVE_LINK_MODE_HPP
|
||||
Loading…
Add table
Add a link
Reference in a new issue