|
Boost-Commit : |
From: danieljames_at_[hidden]
Date: 2007-07-07 05:42:57
Author: danieljames
Date: 2007-07-07 05:42:56 EDT (Sat, 07 Jul 2007)
New Revision: 7384
URL: http://svn.boost.org/trac/boost/changeset/7384
Log:
Use a portable hash_value in insert_stable_tests in order to support compilers
without ADL.
Text files modified:
sandbox/unordered/libs/unordered/test/unordered/insert_stable_tests.cpp | 62 +++++++++++++++++++++++----------------
1 files changed, 36 insertions(+), 26 deletions(-)
Modified: sandbox/unordered/libs/unordered/test/unordered/insert_stable_tests.cpp
==============================================================================
--- sandbox/unordered/libs/unordered/test/unordered/insert_stable_tests.cpp (original)
+++ sandbox/unordered/libs/unordered/test/unordered/insert_stable_tests.cpp 2007-07-07 05:42:56 EDT (Sat, 07 Jul 2007)
@@ -9,34 +9,44 @@
#include <iostream>
-struct member {
- int tag1_;
- int tag2_;
-
- member() : tag1_(0), tag2_(0) {}
- member(int t1, int t2) : tag1_(t1), tag2_(t2) {}
-
- friend bool operator==(member const& x, member const& y) {
- return x.tag1_ == y.tag1_;
- }
+namespace insert_stable
+{
+ struct member {
+ int tag1_;
+ int tag2_;
+
+ member() : tag1_(0), tag2_(0) {}
+ member(int t1, int t2) : tag1_(t1), tag2_(t2) {}
+
+ friend bool operator==(member const& x, member const& y) {
+ return x.tag1_ == y.tag1_;
+ }
+
+ friend bool operator!=(member const& x, member const& y) {
+ return x.tag1_ != y.tag1_;
+ }
+ };
+}
- friend bool operator!=(member const& x, member const& y) {
- return x.tag1_ != y.tag1_;
+#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+namespace boost
+#else
+namespace insert_stable
+#endif
+{
+ std::size_t hash_value(insert_stable::member const& x) {
+ return static_cast<std::size_t>(x.tag1_);
}
-};
-
-std::size_t hash_value(member const& x) {
- return static_cast<std::size_t>(x.tag1_);
}
void stable_insert_test1() {
- boost::unordered_multiset<member> x;
+ boost::unordered_multiset<insert_stable::member> x;
- x.insert(member(1,1));
- x.insert(member(1,2));
- x.insert(member(1,3));
+ x.insert(insert_stable::member(1,1));
+ x.insert(insert_stable::member(1,2));
+ x.insert(insert_stable::member(1,3));
- boost::unordered_multiset<member>::const_iterator it = x.begin(), end = x.end();
+ boost::unordered_multiset<insert_stable::member>::const_iterator it = x.begin(), end = x.end();
BOOST_TEST(it != end);
if(it != end) { BOOST_TEST(it->tag2_ == 1); ++it; }
BOOST_TEST(it != end);
@@ -47,12 +57,12 @@
}
void stable_insert_test2() {
- boost::unordered_multimap<member, int> x;
- typedef boost::unordered_multimap<member, int>::const_iterator iterator;
+ boost::unordered_multimap<insert_stable::member, int> x;
+ typedef boost::unordered_multimap<insert_stable::member, int>::const_iterator iterator;
- iterator it = x.insert(x.end(), std::make_pair(member(1,1), 1));
- it = x.insert(it, std::make_pair(member(1,2), 2));
- it = x.insert(it, std::make_pair(member(1,3), 3));
+ iterator it = x.insert(x.end(), std::make_pair(insert_stable::member(1,1), 1));
+ it = x.insert(it, std::make_pair(insert_stable::member(1,2), 2));
+ it = x.insert(it, std::make_pair(insert_stable::member(1,3), 3));
it = x.begin();
iterator end = x.end();
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