|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r86269 - in trunk: boost boost/multi_index boost/multi_index/detail libs/multi_index/example libs/multi_index/test
From: joaquin_at_[hidden]
Date: 2013-10-12 15:59:48
Author: joaquin
Date: 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013)
New Revision: 86269
URL: http://svn.boost.org/trac/boost/changeset/86269
Log:
removed support for compilers without template partial specialization
Text files modified:
trunk/boost/multi_index/composite_key.hpp | 41 -------------
trunk/boost/multi_index/detail/hash_index_iterator.hpp | 10 --
trunk/boost/multi_index/detail/hash_index_node.hpp | 16 ++--
trunk/boost/multi_index/detail/safe_mode.hpp | 3
trunk/boost/multi_index/detail/serialization_version.hpp | 2
trunk/boost/multi_index/global_fun.hpp | 15 ----
trunk/boost/multi_index/identity.hpp | 16 ----
trunk/boost/multi_index/member.hpp | 22 +-----
trunk/boost/multi_index_container.hpp | 17 -----
trunk/libs/multi_index/example/composite_keys.cpp | 14 ---
trunk/libs/multi_index/test/test_composite_key.cpp | 123 +++++++++------------------------------
trunk/libs/multi_index/test/test_key_extractors.cpp | 6 -
trunk/libs/multi_index/test/test_serialization3.cpp | 4 -
13 files changed, 54 insertions(+), 235 deletions(-)
Modified: trunk/boost/multi_index/composite_key.hpp
==============================================================================
--- trunk/boost/multi_index/composite_key.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/composite_key.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -580,16 +580,6 @@
/* composite_key */
-/* NB. Some overloads of operator() have an extra dummy parameter int=0.
- * This disambiguator serves several purposes:
- * - Without it, MSVC++ 6.0 incorrectly regards some overloads as
- * specializations of a previous member function template.
- * - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
- * as if they have the same signature.
- * - If remove_const is broken due to lack of PTS, int=0 avoids the
- * declaration of memfuns with identical signature.
- */
-
template<
typename Value,
BOOST_MULTI_INDEX_CK_ENUM(BOOST_MULTI_INDEX_CK_TEMPLATE_PARM,KeyFromValue)
@@ -639,7 +629,7 @@
return result_type(*this,x.get());
}
- result_type operator()(const reference_wrapper<value_type>& x,int=0)const
+ result_type operator()(const reference_wrapper<value_type>& x)const
{
return result_type(*this,x.get());
}
@@ -1229,7 +1219,6 @@
* for composite_key_results enabling interoperation with tuples of values.
*/
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
namespace std{
template<typename CompositeKey>
@@ -1269,34 +1258,6 @@
};
} /* namespace boost */
-#else
-/* Lacking template partial specialization, std::equal_to, std::less and
- * std::greater will still work for composite_key_results although without
- * tuple interoperability. To achieve the same graceful degrading with
- * boost::hash, we define the appropriate hash_value overload.
- */
-
-namespace boost{
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-namespace multi_index{
-#endif
-
-template<typename CompositeKey>
-inline std::size_t hash_value(
- const boost::multi_index::composite_key_result<CompositeKey>& x)
-{
- boost::multi_index::composite_key_result_hash<
- boost::multi_index::composite_key_result<CompositeKey> > h;
- return h(x);
-}
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-} /* namespace multi_index */
-#endif
-
-} /* namespace boost */
-#endif
#undef BOOST_MULTI_INDEX_CK_RESULT_HASH_SUPER
#undef BOOST_MULTI_INDEX_CK_RESULT_GREATER_SUPER
Modified: trunk/boost/multi_index/detail/hash_index_iterator.hpp
==============================================================================
--- trunk/boost/multi_index/detail/hash_index_iterator.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/detail/hash_index_iterator.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -68,15 +68,10 @@
typedef typename Node::base_type node_base_type;
template<class Archive>
- void save(Archive& ar,const unsigned int version)const
+ void save(Archive& ar,const unsigned int)const
{
node_base_type* bnode=node;
ar<<serialization::make_nvp("pointer",bnode);
- if(version<1){ /* class versioning unavailable */
- /* save anything for backwards compatibility */
- BucketArray* dummy=0;
- ar<<serialization::make_nvp("pointer",dummy);
- }
}
template<class Archive>
@@ -149,8 +144,7 @@
} /* namespace multi_index */
-#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)&&\
- !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
/* class version = 1 : hashed_index_iterator does no longer serialize a bucket
* array pointer.
*/
Modified: trunk/boost/multi_index/detail/hash_index_node.hpp
==============================================================================
--- trunk/boost/multi_index/detail/hash_index_node.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/detail/hash_index_node.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -15,8 +15,6 @@
#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
#include <boost/detail/allocator_utilities.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_same.hpp>
namespace boost{
@@ -220,8 +218,11 @@
struct hashed_unique_tag{};
struct hashed_non_unique_tag{};
+template<typename Node,typename Category>
+struct hashed_index_node_alg;
+
template<typename Node>
-struct hashed_unique_index_node_alg
+struct hashed_index_node_alg<Node,hashed_unique_tag>
{
typedef typename Node::base_pointer base_pointer;
typedef typename Node::const_base_pointer const_base_pointer;
@@ -310,7 +311,7 @@
};
template<typename Node>
-struct hashed_non_unique_index_node_alg
+struct hashed_index_node_alg<Node,hashed_non_unique_tag>
{
typedef typename Node::base_pointer base_pointer;
typedef typename Node::const_base_pointer const_base_pointer;
@@ -631,11 +632,8 @@
public:
typedef typename trampoline::impl_type impl_type;
- typedef typename mpl::if_<
- is_same<Category,hashed_unique_tag>,
- hashed_unique_index_node_alg<impl_type>,
- hashed_non_unique_index_node_alg<impl_type>
- >::type node_alg;
+ typedef hashed_index_node_alg<
+ impl_type,Category> node_alg;
typedef typename trampoline::base_pointer impl_base_pointer;
typedef typename trampoline::const_base_pointer const_impl_base_pointer;
typedef typename trampoline::pointer impl_pointer;
Modified: trunk/boost/multi_index/detail/safe_mode.hpp
==============================================================================
--- trunk/boost/multi_index/detail/safe_mode.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/detail/safe_mode.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -568,8 +568,7 @@
} /* namespace multi_index */
-#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)&&\
- !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
namespace serialization{
template<typename Iterator,typename Container>
struct version<
Modified: trunk/boost/multi_index/detail/serialization_version.hpp
==============================================================================
--- trunk/boost/multi_index/detail/serialization_version.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/detail/serialization_version.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -60,7 +60,6 @@
} /* namespace multi_index */
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
namespace serialization {
template<typename T>
struct version<boost::multi_index::detail::serialization_version<T> >
@@ -68,7 +67,6 @@
BOOST_STATIC_CONSTANT(int,value=version<T>::value);
};
} /* namespace serialization */
-#endif
} /* namespace boost */
Modified: trunk/boost/multi_index/global_fun.hpp
==============================================================================
--- trunk/boost/multi_index/global_fun.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/global_fun.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -46,16 +46,6 @@
* arbitrary combinations of these (vg. T** or auto_ptr<T*>.)
*/
-/* NB. Some overloads of operator() have an extra dummy parameter int=0.
- * This disambiguator serves several purposes:
- * - Without it, MSVC++ 6.0 incorrectly regards some overloads as
- * specializations of a previous member function template.
- * - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
- * as if they have the same signature.
- * - If remove_const is broken due to lack of PTS, int=0 avoids the
- * declaration of memfuns with identical signature.
- */
-
template<class Value,typename Type,Type (*PtrToFunction)(Value)>
struct const_ref_global_fun_base
{
@@ -90,7 +80,7 @@
Type operator()(
const reference_wrapper<
typename remove_const<
- typename remove_reference<Value>::type>::type>& x,int=0)const
+ typename remove_reference<Value>::type>::type>& x)const
{
return operator()(x.get());
}
@@ -158,8 +148,7 @@
}
Type operator()(
- const reference_wrapper<
- typename remove_const<Value>::type>& x,int=0)const
+ const reference_wrapper<typename remove_const<Value>::type>& x)const
{
return operator()(x.get());
}
Modified: trunk/boost/multi_index/identity.hpp
==============================================================================
--- trunk/boost/multi_index/identity.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/identity.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -42,16 +42,6 @@
* arbitrary combinations of these (vg. Type** or auto_ptr<Type*>.)
*/
-/* NB. Some overloads of operator() have an extra dummy parameter int=0.
- * This disambiguator serves several purposes:
- * - Without it, MSVC++ 6.0 incorrectly regards some overloads as
- * specializations of a previous member function template.
- * - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
- * as if they have the same signature.
- * - If remove_const is broken due to lack of PTS, int=0 avoids the
- * declaration of memfuns with identical signature.
- */
-
template<typename Type>
struct const_identity_base
{
@@ -81,7 +71,7 @@
}
Type& operator()(
- const reference_wrapper<typename remove_const<Type>::type>& x,int=0)const
+ const reference_wrapper<typename remove_const<Type>::type>& x)const
{
return x.get();
}
@@ -108,7 +98,7 @@
return operator()(*x);
}
- const Type& operator()(const Type& x,int=0)const
+ const Type& operator()(const Type& x)const
{
return x;
}
@@ -118,7 +108,7 @@
return x;
}
- const Type& operator()(const reference_wrapper<const Type>& x,int=0)const
+ const Type& operator()(const reference_wrapper<const Type>& x)const
{
return x.get();
}
Modified: trunk/boost/multi_index/member.hpp
==============================================================================
--- trunk/boost/multi_index/member.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index/member.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -41,16 +41,6 @@
* arbitrary combinations of these (vg. T** or auto_ptr<T*>.)
*/
-/* NB. Some overloads of operator() have an extra dummy parameter int=0.
- * This disambiguator serves several purposes:
- * - Without it, MSVC++ 6.0 incorrectly regards some overloads as
- * specializations of a previous member function template.
- * - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns
- * as if they have the same signature.
- * - If remove_const is broken due to lack of PTS, int=0 avoids the
- * declaration of memfuns with identical signature.
- */
-
template<class Class,typename Type,Type Class::*PtrToMember>
struct const_member_base
{
@@ -80,7 +70,7 @@
return operator()(x.get());
}
- Type& operator()(const reference_wrapper<Class>& x,int=0)const
+ Type& operator()(const reference_wrapper<Class>& x)const
{
return operator()(x.get());
}
@@ -105,7 +95,7 @@
return operator()(*x);
}
- const Type& operator()(const Class& x,int=0)const
+ const Type& operator()(const Class& x)const
{
return x.*PtrToMember;
}
@@ -115,7 +105,7 @@
return x.*PtrToMember;
}
- const Type& operator()(const reference_wrapper<const Class>& x,int=0)const
+ const Type& operator()(const reference_wrapper<const Class>& x)const
{
return operator()(x.get());
}
@@ -189,7 +179,7 @@
return operator()(x.get());
}
- Type& operator()(const reference_wrapper<Class>& x,int=0)const
+ Type& operator()(const reference_wrapper<Class>& x)const
{
return operator()(x.get());
}
@@ -214,7 +204,7 @@
return operator()(*x);
}
- const Type& operator()(const Class& x,int=0)const
+ const Type& operator()(const Class& x)const
{
return *static_cast<const Type*>(
static_cast<const void*>(
@@ -229,7 +219,7 @@
static_cast<char*>(static_cast<void *>(&x))+OffsetOfMember));
}
- const Type& operator()(const reference_wrapper<const Class>& x,int=0)const
+ const Type& operator()(const reference_wrapper<const Class>& x)const
{
return operator()(x.get());
}
Modified: trunk/boost/multi_index_container.hpp
==============================================================================
--- trunk/boost/multi_index_container.hpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/boost/multi_index_container.hpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -877,17 +877,10 @@
template<class Archive>
void save(Archive& ar,const unsigned int version)const
{
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
const serialization::collection_size_type s(size_());
const detail::serialization_version<value_type> value_version;
ar<<serialization::make_nvp("count",s);
ar<<serialization::make_nvp("value_version",value_version);
-#else
- const std::size_t s=size_();
- const unsigned int value_version=0;
- ar<<serialization::make_nvp("count",s);
-#endif
index_saver_type sm(bfm_allocator::member,s);
@@ -907,8 +900,6 @@
BOOST_MULTI_INDEX_CHECK_INVARIANT;
clear_();
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
serialization::collection_size_type s;
detail::serialization_version<value_type> value_version;
if(version<1){
@@ -925,11 +916,6 @@
else{
ar>>serialization::make_nvp("value_version",value_version);
}
-#else
- std::size_t s;
- unsigned int value_version=0;
- ar>>serialization::make_nvp("count",s);
-#endif
index_loader_type lm(bfm_allocator::member,s);
@@ -1344,8 +1330,7 @@
} /* namespace multi_index */
-#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)&&\
- !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
/* class version = 1 : we now serialize the size through
* boost::serialization::collection_size_type.
* class version = 2 : proper use of {save|load}_construct_data.
Modified: trunk/libs/multi_index/example/composite_keys.cpp
==============================================================================
--- trunk/libs/multi_index/example/composite_keys.cpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/libs/multi_index/example/composite_keys.cpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -81,19 +81,9 @@
file_entry,
indexed_by<
/* primary index sorted by name (inside the same directory) */
- ordered_unique<
- name_key
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ,composite_key_result_less<name_key::result_type>
-#endif
- >,
+ ordered_unique<name_key>,
/* secondary index sorted by size (inside the same directory) */
- ordered_non_unique<
- size_key
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ,composite_key_result_less<size_key::result_type>
-#endif
- >
+ ordered_non_unique<size_key>
>
> file_system;
Modified: trunk/libs/multi_index/test/test_composite_key.cpp
==============================================================================
--- trunk/libs/multi_index/test/test_composite_key.cpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/libs/multi_index/test/test_composite_key.cpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -74,12 +74,9 @@
composite_key_result_equal_to<CompositeKeyResult> eq;
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::equal_to<CompositeKeyResult> std_eq;
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::equal_to<CompositeKeyResult> std_eq;
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return (x< y) && !(y< x)&&
!(x==y) && !(y==x)&&
@@ -87,18 +84,12 @@
!(x> y) && (y> x)&&
!(x>=y) && (y>=x)&&
(x<=y) && !(y<=x)&&
-
!eq(x,y) && !eq(y,x)&&
lt(x,y) && !lt(y,x)&&
- !gt(x,y) && gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ !gt(x,y) && gt(y,x)&&
!std_eq(x,y) && !std_eq(y,x)&&
std_lt(x,y) && !std_lt(y,x)&&
- !std_gt(x,y) && std_gt(y,x)
-#endif
- ;
+ !std_gt(x,y) && std_gt(y,x);
}
static bool is_greater(const CompositeKeyResult& x,const T2& y)
@@ -106,12 +97,9 @@
composite_key_result_equal_to<CompositeKeyResult> eq;
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::equal_to<CompositeKeyResult> std_eq;
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::equal_to<CompositeKeyResult> std_eq;
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return !(x< y) && (y< x)&&
!(x==y) && !(y==x)&&
@@ -119,18 +107,12 @@
(x> y) && !(y> x)&&
(x>=y) && !(y>=x)&&
!(x<=y) && (y<=x)&&
-
!eq(x,y) && !eq(y,x)&&
!lt(x,y) && lt(y,x)&&
- gt(x,y) && !gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ gt(x,y) && !gt(y,x)&&
!std_eq(x,y) && !std_eq(y,x)&&
!std_lt(x,y) && std_lt(y,x)&&
- std_gt(x,y) && !std_gt(y,x)
-#endif
- ;
+ std_gt(x,y) && !std_gt(y,x);
}
static bool is_equiv(const CompositeKeyResult& x,const T2& y)
@@ -138,12 +120,9 @@
composite_key_result_equal_to<CompositeKeyResult> eq;
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::equal_to<CompositeKeyResult> std_eq;
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::equal_to<CompositeKeyResult> std_eq;
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return !(x< y) && !(y< x)&&
(x==y) && (y==x)&&
@@ -151,18 +130,12 @@
!(x> y) && !(y> x)&&
(x>=y) && (y>=x)&&
(x<=y) && (y<=x)&&
-
eq(x,y) && eq(y,x)&&
!lt(x,y) && !lt(y,x)&&
- !gt(x,y) && !gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ !gt(x,y) && !gt(y,x)&&
std_eq(x,y) && std_eq(y,x)&&
!std_lt(x,y) && !std_lt(y,x)&&
- !std_gt(x,y) && !std_gt(y,x)
-#endif
- ;
+ !std_gt(x,y) && !std_gt(y,x);
}
};
@@ -173,78 +146,51 @@
{
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return (x< y) && !(y< x)&&
!(x> y) && (y> x)&&
!(x>=y) && (y>=x)&&
(x<=y) && !(y<=x)&&
-
lt(x,y) && !lt(y,x)&&
- !gt(x,y) && gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ !gt(x,y) && gt(y,x)&&
std_lt(x,y) && !std_lt(y,x)&&
- !std_gt(x,y) && std_gt(y,x)
-#endif
- ;
+ !std_gt(x,y) && std_gt(y,x);
}
static bool is_greater(const CompositeKeyResult& x,const T2& y)
{
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return !(x< y) && (y< x)&&
(x> y) && !(y> x)&&
(x>=y) && !(y>=x)&&
!(x<=y) && (y<=x)&&
-
!lt(x,y) && lt(y,x)&&
- gt(x,y) && !gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ gt(x,y) && !gt(y,x)&&
!std_lt(x,y) && std_lt(y,x)&&
- std_gt(x,y) && !std_gt(y,x)
-#endif
- ;
+ std_gt(x,y) && !std_gt(y,x);
}
static bool is_equiv(const CompositeKeyResult& x,const T2& y)
{
composite_key_result_less<CompositeKeyResult> lt;
composite_key_result_greater<CompositeKeyResult> gt;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- std::less<CompositeKeyResult> std_lt;
- std::greater<CompositeKeyResult> std_gt;
-#endif
+ std::less<CompositeKeyResult> std_lt;
+ std::greater<CompositeKeyResult> std_gt;
return !(x< y) && !(y< x)&&
!(x> y) && !(y> x)&&
(x>=y) && (y>=x)&&
(x<=y) && (y<=x)&&
-
!lt(x,y) && !lt(y,x)&&
- !gt(x,y) && !gt(y,x)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- &&
+ !gt(x,y) && !gt(y,x)&&
!std_lt(x,y) && !std_lt(y,x)&&
- !std_gt(x,y) && !std_gt(y,x)
-#endif
- ;
+ !std_gt(x,y) && !std_gt(y,x);
}
};
@@ -355,12 +301,7 @@
typedef multi_index_container<
xyz,
indexed_by<
- ordered_unique<
- ckey_t1
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ,composite_key_result_less<ckey_t1::result_type>
-#endif
- >
+ ordered_unique<ckey_t1>
>
> indexed_t1;
@@ -576,13 +517,7 @@
typedef multi_index_container<
xyz,
indexed_by<
- hashed_unique<
- ckey_t1
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ,composite_key_result_hash<ckey_t1::result_type>
- ,composite_key_result_equal_to<ckey_t1::result_type>
-#endif
- >
+ hashed_unique<ckey_t1>
>
> indexed_t2;
Modified: trunk/libs/multi_index/test/test_key_extractors.cpp
==============================================================================
--- trunk/libs/multi_index/test/test_key_extractors.cpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/libs/multi_index/test/test_key_extractors.cpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -62,9 +62,6 @@
test_derived_class(int i,int j):test_class(i,j){}
};
-BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(test_class)
-BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(test_derived_class)
-
typedef identity<test_class> idn;
typedef identity<const test_class> cidn;
typedef BOOST_MULTI_INDEX_MEMBER(test_class,int,int_member) key_m;
@@ -134,9 +131,6 @@
test_nc_derived_class(int i,int j):test_nc_class(i,j){}
};
-BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(test_nc_class)
-BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(test_nc_derived_class)
-
typedef identity<test_nc_class> nc_idn;
typedef identity<const test_nc_class> nc_cidn;
typedef BOOST_MULTI_INDEX_MEMBER(test_nc_class,int,int_member) nc_key_m;
Modified: trunk/libs/multi_index/test/test_serialization3.cpp
==============================================================================
--- trunk/libs/multi_index/test/test_serialization3.cpp Sat Oct 12 15:26:17 2013 (r86268)
+++ trunk/libs/multi_index/test/test_serialization3.cpp 2013-10-12 15:59:48 EDT (Sat, 12 Oct 2013) (r86269)
@@ -35,9 +35,7 @@
void save_construct_data(
Archive& ar,const non_default_ctble* p,const unsigned int version)
{
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
if(version<3)return;
-#endif
ar<<boost::serialization::make_nvp("n",p->n);
}
@@ -46,9 +44,7 @@
void load_construct_data(
Archive& ar,non_default_ctble* p,const unsigned int version)
{
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
if(version<3)return;
-#endif
int n=0;
ar>>boost::serialization::make_nvp("n",n);
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk