|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r73760 - in trunk: boost/unordered/detail libs/unordered/test/objects libs/unordered/test/unordered
From: dnljms_at_[hidden]
Date: 2011-08-14 17:03:19
Author: danieljames
Date: 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
New Revision: 73760
URL: http://svn.boost.org/trac/boost/changeset/73760
Log:
Unordered: Small improvements for windows.
Text files modified:
trunk/boost/unordered/detail/table.hpp | 4 +---
trunk/libs/unordered/test/objects/cxx11_allocator.hpp | 8 ++++----
trunk/libs/unordered/test/unordered/assign_tests.cpp | 4 ++++
trunk/libs/unordered/test/unordered/move_tests.cpp | 4 ++++
trunk/libs/unordered/test/unordered/swap_tests.cpp | 4 ++++
trunk/libs/unordered/test/unordered/unnecessary_copy_tests.cpp | 23 +++++++++++++++--------
6 files changed, 32 insertions(+), 15 deletions(-)
Modified: trunk/boost/unordered/detail/table.hpp
==============================================================================
--- trunk/boost/unordered/detail/table.hpp (original)
+++ trunk/boost/unordered/detail/table.hpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -134,8 +134,6 @@
std::size_t calculate_max_load()
{
- BOOST_ASSERT(this->buckets_);
-
using namespace std;
// From 6.3.1/13:
@@ -196,7 +194,7 @@
: buckets(x, m),
functions(x),
mlf_(x.mlf_),
- max_load_(this->buckets_ ? calculate_max_load() : 0) {}
+ max_load_(calculate_max_load()) {}
// TODO: Why do I use x's bucket count?
table(table& x, node_allocator const& a, move_tag m)
Modified: trunk/libs/unordered/test/objects/cxx11_allocator.hpp
==============================================================================
--- trunk/libs/unordered/test/objects/cxx11_allocator.hpp (original)
+++ trunk/libs/unordered/test/objects/cxx11_allocator.hpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -149,7 +149,7 @@
// Note that tags will be tested
// properly in the normal allocator.
detail::tracker.track_deallocate((void*) p, n, sizeof(T), tag_,
- (Flags & propagate_swap));
+ (Flags & propagate_swap) ? true : false);
::operator delete((void*) p);
}
@@ -198,13 +198,13 @@
template <typename T, allocator_flags Flags>
struct is_propagate_on_swap<cxx11_allocator<T, Flags> >
- : bool_type<(bool)(Flags & propagate_swap)> {};
+ : bool_type<(Flags & propagate_swap) ? true : false> {};
template <typename T, allocator_flags Flags>
struct is_propagate_on_assign<cxx11_allocator<T, Flags> >
- : bool_type<(bool)(Flags & propagate_assign)> {};
+ : bool_type<(Flags & propagate_assign) ? true : false> {};
template <typename T, allocator_flags Flags>
struct is_propagate_on_move<cxx11_allocator<T, Flags> >
- : bool_type<(bool)(Flags & propagate_move)> {};
+ : bool_type<(Flags & propagate_move) ? true : false> {};
}
#endif
Modified: trunk/libs/unordered/test/unordered/assign_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/assign_tests.cpp (original)
+++ trunk/libs/unordered/test/unordered/assign_tests.cpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -16,6 +16,10 @@
#include <iostream>
+#if defined(BOOST_MSVC)
+#pragma warning(disable:4127) // conditional expression is constant
+#endif
+
namespace assign_tests {
test::seed_t seed(96785);
Modified: trunk/libs/unordered/test/unordered/move_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/move_tests.cpp (original)
+++ trunk/libs/unordered/test/unordered/move_tests.cpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -15,6 +15,10 @@
#include "../helpers/equivalent.hpp"
#include "../helpers/invariants.hpp"
+#if defined(BOOST_MSVC)
+#pragma warning(disable:4127) // conditional expression is constant
+#endif
+
namespace move_tests
{
test::seed_t seed(98624);
Modified: trunk/libs/unordered/test/unordered/swap_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/swap_tests.cpp (original)
+++ trunk/libs/unordered/test/unordered/swap_tests.cpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -17,6 +17,10 @@
#include "../helpers/tracker.hpp"
#include "../helpers/invariants.hpp"
+#if defined(BOOST_MSVC)
+#pragma warning(disable:4127) // conditional expression is constant
+#endif
+
namespace swap_tests
{
Modified: trunk/libs/unordered/test/unordered/unnecessary_copy_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/unnecessary_copy_tests.cpp (original)
+++ trunk/libs/unordered/test/unordered/unnecessary_copy_tests.cpp 2011-08-14 17:03:18 EDT (Sun, 14 Aug 2011)
@@ -38,14 +38,21 @@
x.tag_ = -1; ++moves;
}
- int tag_;
- private:
- // I think the standard might require assignment (or move
- // assignment) for some operations. That Boost.Unordered doesn't
- // is an implementation detail. But these tests are very specific
- // to the implementation, so it's probably okay that this doesn't
- // meet the standard requirements.
- count_copies& operator=(count_copies const&);
+ count_copies& operator=(BOOST_COPY_ASSIGN_REF(count_copies) p) // Copy assignment
+ {
+ tag_ = p.tag_;
+ ++copies;
+ return *this;
+ }
+
+ count_copies& operator=(BOOST_RV_REF(count_copies) p) //Move assignment
+ {
+ tag_ = p.tag_;
+ ++moves;
+ return *this;
+ }
+
+ int tag_;
};
bool operator==(count_copies const& x, count_copies const& y) {
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