Update of /cvsroot/boost/boost/boost/intrusive/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv31087/detail
Modified Files:
config_begin.hpp hashtable_node.hpp list_node.hpp
parent_from_member.hpp rbtree_node.hpp slist_node.hpp
utilities.hpp
Log Message:
no message
Index: config_begin.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/config_begin.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- config_begin.hpp 12 May 2007 12:52:32 -0000 1.2
+++ config_begin.hpp 23 Jun 2007 12:55:23 -0000 1.3
@@ -9,9 +9,18 @@
// See http://www.boost.org/libs/intrusive for documentation.
//
/////////////////////////////////////////////////////////////////////////////
+
+#ifndef BOOST_INTRUSIVE_SELECT_COMPILER_INCLUDED
+#ifndef BOOST_COMPILER_CONFIG
+//#include <boost/config/select_compiler_config.hpp>
+//#include BOOST_COMPILER_CONFIG
#include <boost/config.hpp>
+#endif
+#define BOOST_INTRUSIVE_SELECT_COMPILER_INCLUDED
+#endif
#ifdef BOOST_MSVC
+
#pragma warning (push)
//
//'function' : resolved overload was found by argument-dependent lookup
Index: hashtable_node.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/hashtable_node.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- hashtable_node.hpp 23 May 2007 16:07:03 -0000 1.3
+++ hashtable_node.hpp 23 Jun 2007 12:55:23 -0000 1.4
@@ -15,7 +15,7 @@
#include <boost/intrusive/detail/config_begin.hpp>
#include <iterator>
-#include <boost/assert.hpp>
+#include <boost/intrusive/detail/assert.hpp>
#include <boost/intrusive/detail/pointer_to_other.hpp>
#include <boost/intrusive/circular_list_algorithms.hpp>
#ifdef BOOST_INTRUSIVE_USE_ITERATOR_FACADE
@@ -25,6 +25,7 @@
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_convertible.hpp>
#endif
+#include <boost/intrusive/detail/mpl.hpp>
#include <cstddef>
namespace boost {
@@ -261,9 +262,7 @@
#else
template <class OtherValue>
hashtable_iterator(hashtable_iterator<OtherValue, SlistImpl> const& other,
- typename enable_if<
- is_convertible<OtherValue*,T*>
- >::type* = 0)
+ typename enable_if<is_convertible<OtherValue*, T*>
>::type* = 0)
: local_it_(other.local_it_), bucket_info_(other.bucket_info_)
{}
#endif
Index: list_node.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/list_node.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- list_node.hpp 23 May 2007 16:07:03 -0000 1.3
+++ list_node.hpp 23 Jun 2007 12:55:23 -0000 1.4
@@ -16,7 +16,7 @@
#include <boost/intrusive/detail/config_begin.hpp>
#include <iterator>
-#include <boost/assert.hpp>
+#include <boost/intrusive/detail/assert.hpp>
#include <boost/intrusive/detail/pointer_to_other.hpp>
#include <boost/intrusive/circular_list_algorithms.hpp>
#ifdef BOOST_INTRUSIVE_USE_ITERATOR_FACADE
Index: parent_from_member.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/parent_from_member.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- parent_from_member.hpp 12 Jun 2007 17:03:20 -0000 1.4
+++ parent_from_member.hpp 23 Jun 2007 12:55:23 -0000 1.5
@@ -13,7 +13,7 @@
#define BOOST_INTRUSIVE_PARENT_FROM_MEMBER_HPP
#include <boost/intrusive/detail/config_begin.hpp>
-
+#include <cstddef>
namespace boost {
namespace intrusive {
namespace detail {
@@ -22,8 +22,7 @@
std::size_t offset_from_pointer_to_member(const Member Parent::* ptr_to_member)
{
//The implementation of a pointer to member is compiler dependent.
- #if defined(BOOST_MSVC) || defined(__GNUC__) || \
- defined(BOOST_INTEL) || defined(__HP_aCC)
+ #if (defined(_MSC_VER) || defined(__GNUC__) || defined(BOOST_INTEL) ||
defined(__HP_aCC))
//This works with gcc, msvc, ac++
return *(const std::size_t*)(const void*)&ptr_to_member;
#else
Index: rbtree_node.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/rbtree_node.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- rbtree_node.hpp 12 Jun 2007 17:03:20 -0000 1.4
+++ rbtree_node.hpp 23 Jun 2007 12:55:23 -0000 1.5
@@ -26,11 +26,10 @@
#include <boost/type_traits/is_convertible.hpp>
#endif
#include <boost/intrusive/pointer_plus_bit.hpp>
-#include <boost/type_traits/alignment_of.hpp>
+#include <boost/intrusive/detail/mpl.hpp>
namespace boost {
namespace intrusive {
-
namespace detail {
/////////////////////////////////////////////////////////////////////////////
@@ -171,7 +170,7 @@
: public rbtree_node_traits_dispatch
<VoidPointer
,has_pointer_plus_bit
- <VoidPointer, boost::alignment_of<compact_rbtree_node<VoidPointer>
+ <VoidPointer,
detail::alignment_of<compact_rbtree_node<VoidPointer>
>::value
>::value
>
Index: slist_node.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/slist_node.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- slist_node.hpp 23 May 2007 16:07:03 -0000 1.3
+++ slist_node.hpp 23 Jun 2007 12:55:23 -0000 1.4
@@ -16,7 +16,7 @@
#include <boost/intrusive/detail/config_begin.hpp>
#include <iterator>
-#include <boost/assert.hpp>
+#include <boost/intrusive/detail/assert.hpp>
#include <boost/intrusive/detail/pointer_to_other.hpp>
#include <boost/intrusive/circular_slist_algorithms.hpp>
#ifdef BOOST_INTRUSIVE_USE_ITERATOR_FACADE
Index: utilities.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/utilities.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- utilities.hpp 12 May 2007 12:52:32 -0000 1.2
+++ utilities.hpp 23 Jun 2007 12:55:23 -0000 1.3
@@ -16,9 +16,11 @@
#include <boost/intrusive/detail/config_begin.hpp>
#include <boost/intrusive/detail/pointer_to_other.hpp>
#include <boost/intrusive/detail/parent_from_member.hpp>
-#include <boost/intrusive/detail/ebo_holder.hpp>
+#include <boost/intrusive/detail/ebo_functor_holder.hpp>
#include <boost/intrusive/linking_policy.hpp>
+#include <boost/intrusive/detail/mpl.hpp>
#include <cstddef>
+#include <iterator>
namespace boost {
namespace intrusive {
@@ -65,7 +67,7 @@
{ return t_ == t; }
};
-class null_destroyer
+class null_disposer
{
public:
template <class Pointer>
@@ -155,8 +157,8 @@
typedef typename node_traits::const_node_ptr
const_node_ptr;
typedef typename boost::pointer_to_other<node_ptr, T>::type pointer;
typedef typename boost::pointer_to_other<node_ptr, const T>::type
const_pointer;
- typedef typename std::iterator_traits<pointer>::reference reference;
- typedef typename std::iterator_traits<const_pointer>::reference
const_reference;
+ typedef value_type & reference;
+ typedef const value_type &
const_reference;
enum { linking_policy = MemberHookType::linking_policy };
public:
@@ -192,10 +194,10 @@
template<class KeyValueCompare, class ValueTraits>
struct key_node_ptr_compare
- : private detail::ebo_holder<KeyValueCompare>
+ : private detail::ebo_functor_holder<KeyValueCompare>
{
typedef typename ValueTraits::node_ptr node_ptr;
- typedef detail::ebo_holder<KeyValueCompare> base_t;
+ typedef detail::ebo_functor_holder<KeyValueCompare> base_t;
key_node_ptr_compare(KeyValueCompare kcomp)
: base_t(kcomp)
{}
@@ -217,10 +219,10 @@
template<class F, class ValueTraits>
struct value_to_node_cloner
- : private detail::ebo_holder<F>
+ : private detail::ebo_functor_holder<F>
{
typedef typename ValueTraits::node_ptr node_ptr;
- typedef detail::ebo_holder<F> base_t;
+ typedef detail::ebo_functor_holder<F> base_t;
value_to_node_cloner(F f)
: base_t(f)
@@ -231,12 +233,12 @@
};
template<class F, class ValueTraits>
-struct value_to_node_destroyer
- : private detail::ebo_holder<F>
+struct value_to_node_disposer
+ : private detail::ebo_functor_holder<F>
{
typedef typename ValueTraits::node_ptr node_ptr;
- typedef detail::ebo_holder<F> base_t;
- value_to_node_destroyer(F f)
+ typedef detail::ebo_functor_holder<F> base_t;
+ value_to_node_disposer(F f)
: base_t(f)
{}
@@ -250,7 +252,7 @@
template<class Container>
void destructor_impl(Container &cont, dispatcher<safe_link>)
-{ (void)cont; BOOST_ASSERT(!cont.is_linked()); }
+{ (void)cont;
BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT(!cont.is_linked()); }
template<class Container>
void destructor_impl(Container &cont, dispatcher<auto_unlink>)
@@ -262,26 +264,26 @@
template<class Node, class MaybeClass>
struct node_plus_pred
- : public ebo_holder<MaybeClass>
+ : public ebo_functor_holder<MaybeClass>
, public Node
{
node_plus_pred()
{}
node_plus_pred(const Node &x, const MaybeClass &y)
- : Node(x), ebo_holder<MaybeClass>(y) {}
+ : Node(x), ebo_functor_holder<MaybeClass>(y) {}
node_plus_pred(const MaybeClass &y)
- : ebo_holder<MaybeClass>(y) {}
+ : ebo_functor_holder<MaybeClass>(y) {}
Node &first()
{ return *this; }
const Node &first() const
{ return *this; }
MaybeClass &second()
- { return ebo_holder<MaybeClass>::get(); }
+ { return ebo_functor_holder<MaybeClass>::get(); }
const MaybeClass &second() const
- { return ebo_holder<MaybeClass>::get(); }
+ { return ebo_functor_holder<MaybeClass>::get(); }
static node_plus_pred *this_from_node(Node *n)
{ return static_cast<node_plus_pred*>(n); }
@@ -290,33 +292,6 @@
{ return static_cast<const node_plus_pred*>(n); }
};
-#ifndef BOOST_INTRUSIVE_USE_ITERATOR_ENABLE_IF_CONVERTIBLE
-
-template <bool B, class T = void>
-struct enable_if_c {
- typedef T type;
-};
-
-template <class T>
-struct enable_if_c<false, T> {};
-
-template <class Cond, class T = void>
-struct enable_if : public enable_if_c<Cond::value, T> {};
-
-template <class T, class U>
-class is_convertible
-{
- typedef char true_t;
- class false_t { char dummy[2]; };
- static true_t dispatch(U);
- static false_t dispatch(...);
- static T trigger();
- public:
- enum { value = sizeof(dispatch(trigger())) == sizeof(true_t) };
-};
-
-#endif //#ifndef BOOST_INTRUSIVE_USE_ITERATOR_ENABLE_IF_CONVERTIBLE
-
} //namespace detail
} //namespace intrusive
} //namespace boost
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs