annotate DEPENDENCIES/generic/include/boost/intrusive/link_mode.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /////////////////////////////////////////////////////////////////////////////
Chris@16 2 //
Chris@16 3 // (C) Copyright Ion Gaztanaga 2006-2013
Chris@16 4 //
Chris@16 5 // Distributed under the Boost Software License, Version 1.0.
Chris@16 6 // (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 7 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8 //
Chris@16 9 // See http://www.boost.org/libs/intrusive for documentation.
Chris@16 10 //
Chris@16 11 /////////////////////////////////////////////////////////////////////////////
Chris@16 12
Chris@101 13 #ifndef BOOST_INTRUSIVE_LINK_MODE_HPP
Chris@101 14 #define BOOST_INTRUSIVE_LINK_MODE_HPP
Chris@101 15
Chris@101 16 #if defined(BOOST_HAS_PRAGMA_ONCE)
Chris@101 17 # pragma once
Chris@101 18 #endif
Chris@16 19
Chris@16 20 namespace boost {
Chris@16 21 namespace intrusive {
Chris@16 22
Chris@16 23 //!This enumeration defines the type of value_traits that can be defined
Chris@16 24 //!for Boost.Intrusive containers
Chris@16 25 enum link_mode_type{
Chris@16 26 //!If this linking policy is specified in a value_traits class
Chris@16 27 //!as the link_mode, containers
Chris@16 28 //!configured with such value_traits won't set the hooks
Chris@16 29 //!of the erased values to a default state. Containers also won't
Chris@16 30 //!check that the hooks of the new values are default initialized.
Chris@16 31 normal_link,
Chris@16 32
Chris@16 33 //!If this linking policy is specified in a value_traits class
Chris@16 34 //!as the link_mode, containers
Chris@16 35 //!configured with such value_traits will set the hooks
Chris@16 36 //!of the erased values to a default state. Containers also will
Chris@16 37 //!check that the hooks of the new values are default initialized.
Chris@16 38 safe_link,
Chris@16 39
Chris@16 40 //!Same as "safe_link" but the user type is an auto-unlink
Chris@16 41 //!type, so the containers with constant-time size features won't be
Chris@16 42 //!compatible with value_traits configured with this policy.
Chris@16 43 //!Containers also know that the a value can be silently erased from
Chris@16 44 //!the container without using any function provided by the containers.
Chris@16 45 auto_unlink
Chris@16 46 };
Chris@101 47
Chris@101 48 #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
Chris@101 49
Chris@101 50 template <link_mode_type link_mode>
Chris@101 51 struct is_safe_autounlink
Chris@101 52 {
Chris@101 53 static const bool value =
Chris@101 54 (int)link_mode == (int)auto_unlink ||
Chris@101 55 (int)link_mode == (int)safe_link;
Chris@101 56 };
Chris@101 57
Chris@101 58 #endif //BOOST_INTRUSIVE_DOXYGEN_INVOKED
Chris@101 59
Chris@16 60 } //namespace intrusive
Chris@16 61 } //namespace boost
Chris@16 62
Chris@101 63 #endif //BOOST_INTRUSIVE_LINK_MODE_HPP