Update of /cvsroot/boost/boost/boost/intrusive/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv23445/detail
Modified Files:
assert.hpp config_begin.hpp parent_from_member.hpp
utilities.hpp
Log Message:
New Interprocess version
Index: assert.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/assert.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- assert.hpp 23 Jun 2007 12:58:43 -0000 1.1
+++ assert.hpp 22 Jul 2007 14:08:31 -0000 1.2
@@ -22,14 +22,14 @@
#define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
#endif
-#if !defined(BOOST_INTRUSIVE_SAFE_MODE_CONTAINER_INSERTION_ASSERT)
+#if !defined(BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT)
#include <boost/assert.hpp>
-#define BOOST_INTRUSIVE_SAFE_MODE_CONTAINER_INSERTION_ASSERT BOOST_ASSERT
+#define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
#endif
-#if !defined(BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT)
+#if !defined(BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT)
#include <boost/assert.hpp>
-#define BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT BOOST_ASSERT
+#define BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT BOOST_ASSERT
#endif
#endif //BOOST_INTRUSIVE_DETAIL_ASSERT_HPP
Index: config_begin.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/config_begin.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- config_begin.hpp 23 Jun 2007 12:55:23 -0000 1.3
+++ config_begin.hpp 22 Jul 2007 14:08:31 -0000 1.4
@@ -12,8 +12,6 @@
#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
Index: parent_from_member.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/parent_from_member.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- parent_from_member.hpp 23 Jun 2007 12:55:23 -0000 1.5
+++ parent_from_member.hpp 22 Jul 2007 14:08:31 -0000 1.6
@@ -14,32 +14,34 @@
#include <boost/intrusive/detail/config_begin.hpp>
#include <cstddef>
+
namespace boost {
namespace intrusive {
namespace detail {
template<class Parent, class Member>
-std::size_t offset_from_pointer_to_member(const Member Parent::* ptr_to_member)
+inline 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(_MSC_VER) || 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;
+ return *(const std::ptrdiff_t*)(void*)&ptr_to_member;
#else
//This is the traditional C-front approach: __MWERKS__, __DMC__, __SUNPRO_CC
- return *(const std::size_t*)(const void*)&ptr_to_member - 1;
+ return *(const std::ptrdiff_t*)(void*)&ptr_to_member - 1;
#endif
}
template<class Parent, class Member>
-Parent *parent_from_member(Member *member, const Member Parent::*
ptr_to_member)
+inline Parent *parent_from_member(Member *member, const Member Parent::*
ptr_to_member)
{
return (Parent*)((char*)member -
offset_from_pointer_to_member(ptr_to_member));
}
template<class Parent, class Member>
-const Parent *parent_from_member(const Member *member, const Member Parent::*
ptr_to_member)
+inline const Parent *parent_from_member(const Member *member, const Member
Parent::* ptr_to_member)
{
return (const Parent*)((const char*)member -
offset_from_pointer_to_member(ptr_to_member));
Index: utilities.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/utilities.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- utilities.hpp 23 Jun 2007 12:55:23 -0000 1.3
+++ utilities.hpp 22 Jul 2007 14:08:32 -0000 1.4
@@ -116,7 +116,7 @@
};
template<class T, class DerivationHookType, typename Tag>
-struct derivation_value_traits
+struct derivation_hook_value_traits
{
public:
typedef typename DerivationHookType::node_traits
node_traits;
@@ -148,7 +148,7 @@
template<class T, class MemberHookType, MemberHookType T::* P>
-struct member_value_traits
+struct member_hook_value_traits
{
public:
typedef typename MemberHookType::node_traits
node_traits;
@@ -174,21 +174,22 @@
return result->to_node_ptr();
}
- //Now let's be nasty. A pointer to member is usually implemented
- //as an offset from the start of the class.
- //get the offset in bytes and go
- //backwards from n to the value subtracting
- //the needed bytes.
static pointer to_value_ptr(node_ptr n)
{
- return pointer(parent_from_member<value_type, MemberHookType>
- ((MemberHookType*)detail::get_pointer(n), P));
+ return pointer
+ (
+ parent_from_member<value_type, MemberHookType>
+ (detail::get_pointer(MemberHookType::to_hook_ptr(n)), P)
+ );
}
static const_pointer to_value_ptr(const_node_ptr n)
{
- const_pointer(parent_from_member<value_type, MemberHookType>
- ((const MemberHookType*)detail::get_pointer(n), P));
+ return const_pointer
+ (
+ parent_from_member<value_type, MemberHookType>
+ (detail::get_pointer(MemberHookType::to_hook_ptr(n)), P)
+ );
}
};
@@ -252,7 +253,7 @@
template<class Container>
void destructor_impl(Container &cont, dispatcher<safe_link>)
-{ (void)cont;
BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT(!cont.is_linked()); }
+{ (void)cont; BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT(!cont.is_linked());
}
template<class Container>
void destructor_impl(Container &cont, dispatcher<auto_unlink>)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs