2005-04-24 14:23:24 +00:00
|
|
|
|
2006-04-17 11:11:49 +00:00
|
|
|
// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
|
2008-03-27 23:38:01 +00:00
|
|
|
// Copyright (C) 2005-2008 Daniel James.
|
2006-07-01 22:34:48 +00:00
|
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2008-01-06 17:45:18 +00:00
|
|
|
// See http://www.boost.org/libs/unordered for documentation
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
#ifndef BOOST_UNORDERED_SET_HPP_INCLUDED
|
|
|
|
#define BOOST_UNORDERED_SET_HPP_INCLUDED
|
|
|
|
|
|
|
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
|
|
|
# pragma once
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <boost/config.hpp>
|
|
|
|
|
|
|
|
#include <functional>
|
|
|
|
#include <memory>
|
|
|
|
|
2007-12-19 22:42:12 +00:00
|
|
|
#include <boost/functional/hash.hpp>
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
#include <boost/unordered/detail/hash_table.hpp>
|
2005-04-24 14:23:24 +00:00
|
|
|
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
#if !defined(BOOST_HAS_RVALUE_REFS)
|
|
|
|
#include <boost/unordered/detail/move.hpp>
|
|
|
|
#endif
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
namespace boost
|
|
|
|
{
|
|
|
|
template <class Value,
|
|
|
|
class Hash = hash<Value>,
|
|
|
|
class Pred = std::equal_to<Value>,
|
|
|
|
class Alloc = std::allocator<Value> >
|
2008-06-21 15:32:11 +00:00
|
|
|
class unordered_set;
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
bool operator==(unordered_set<T, H, P, A> const&,
|
|
|
|
unordered_set<T, H, P, A> const&);
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
bool operator!=(unordered_set<T, H, P, A> const&,
|
|
|
|
unordered_set<T, H, P, A> const&);
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
void swap(unordered_set<T, H, P, A> &m1,
|
|
|
|
unordered_set<T, H, P, A> &m2);
|
|
|
|
|
|
|
|
template <class Value,
|
|
|
|
class Hash = hash<Value>,
|
|
|
|
class Pred = std::equal_to<Value>,
|
|
|
|
class Alloc = std::allocator<Value> >
|
|
|
|
class unordered_multiset;
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
bool operator==(unordered_multiset<T, H, P, A> const&,
|
|
|
|
unordered_multiset<T, H, P, A> const&);
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
bool operator!=(unordered_multiset<T, H, P, A> const&,
|
|
|
|
unordered_multiset<T, H, P, A> const&);
|
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
void swap(unordered_multiset<T, H, P, A> &m1,
|
|
|
|
unordered_multiset<T, H, P, A> &m2);
|
|
|
|
|
|
|
|
template <class Value, class Hash, class Pred, class Alloc>
|
2005-04-24 14:23:24 +00:00
|
|
|
class unordered_set
|
|
|
|
{
|
2006-05-07 13:24:17 +00:00
|
|
|
typedef boost::unordered_detail::hash_types_unique_keys<
|
|
|
|
Value, Value, Hash, Pred, Alloc
|
2007-01-10 00:03:26 +00:00
|
|
|
> implementation;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
BOOST_DEDUCED_TYPENAME implementation::hash_table base;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
|
|
|
public:
|
2007-01-10 00:03:26 +00:00
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
// types
|
2007-01-10 00:03:26 +00:00
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
typedef Value key_type;
|
|
|
|
typedef Value value_type;
|
|
|
|
typedef Hash hasher;
|
|
|
|
typedef Pred key_equal;
|
|
|
|
|
|
|
|
typedef Alloc allocator_type;
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::pointer pointer;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::const_pointer const_pointer;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::reference reference;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::const_reference const_reference;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::size_type size_type;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::difference_type difference_type;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_iterator iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_iterator const_iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_local_iterator local_iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_local_iterator const_local_iterator;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
|
|
|
// construct/destroy/copy
|
|
|
|
|
|
|
|
explicit unordered_set(
|
|
|
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
const hasher &hf = hasher(),
|
|
|
|
const key_equal &eql = key_equal(),
|
|
|
|
const allocator_type &a = allocator_type())
|
|
|
|
: base(n, hf, eql, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2008-07-04 22:57:20 +00:00
|
|
|
explicit unordered_set(allocator_type const& a)
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
: base(boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
hasher(), key_equal(), a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_set(unordered_set const& other, allocator_type const& a)
|
|
|
|
: base(other.base, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
template <class InputIterator>
|
2006-02-26 18:33:49 +00:00
|
|
|
unordered_set(InputIterator f, InputIterator l)
|
|
|
|
: base(f, l, boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
hasher(), key_equal(), allocator_type())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
template <class InputIterator>
|
|
|
|
unordered_set(InputIterator f, InputIterator l, size_type n,
|
2005-04-24 14:23:24 +00:00
|
|
|
const hasher &hf = hasher(),
|
|
|
|
const key_equal &eql = key_equal(),
|
|
|
|
const allocator_type &a = allocator_type())
|
|
|
|
: base(f, l, n, hf, eql, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
#if defined(BOOST_HAS_RVALUE_REFS)
|
|
|
|
unordered_set(unordered_set&& other)
|
|
|
|
: base(other.base, boost::unordered_detail::move_tag())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_set(unordered_set&& other, allocator_type const& a)
|
|
|
|
: base(other.base, a, boost::unordered_detail::move_tag())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_set& operator=(unordered_set&& x)
|
|
|
|
{
|
|
|
|
base.move(x.base);
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
#else
|
2008-05-10 13:53:35 +00:00
|
|
|
unordered_set(boost::unordered_detail::move_from<unordered_set<Value, Hash, Pred, Alloc> > other)
|
2008-06-15 17:03:37 +00:00
|
|
|
: base(other.source.base, boost::unordered_detail::move_tag())
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2008-05-20 15:13:57 +00:00
|
|
|
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0593)
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
unordered_set& operator=(unordered_set x)
|
|
|
|
{
|
|
|
|
base.move(x.base);
|
|
|
|
return *this;
|
|
|
|
}
|
2008-05-20 15:13:57 +00:00
|
|
|
#endif
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
#endif
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
private:
|
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
BOOST_DEDUCED_TYPENAME implementation::iterator_base const&
|
2005-04-24 14:23:24 +00:00
|
|
|
get(const_iterator const& it)
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::iterator_access::get(it);
|
|
|
|
}
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
allocator_type get_allocator() const
|
|
|
|
{
|
|
|
|
return base.get_allocator();
|
|
|
|
}
|
|
|
|
|
|
|
|
// size and capacity
|
|
|
|
|
|
|
|
bool empty() const
|
|
|
|
{
|
|
|
|
return base.empty();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type size() const
|
|
|
|
{
|
|
|
|
return base.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type max_size() const
|
|
|
|
{
|
|
|
|
return base.max_size();
|
|
|
|
}
|
|
|
|
|
|
|
|
// iterators
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
iterator begin()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return iterator(base.data_.begin());
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_iterator begin() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.begin());
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
iterator end()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return iterator(base.data_.end());
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_iterator end() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.end());
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-30 14:11:47 +00:00
|
|
|
const_iterator cbegin() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.begin());
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const_iterator cend() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.end());
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
// modifiers
|
|
|
|
|
Merge support for emplace for compilers with rvalue references and variadic templates arguments, and better use of C++0x allocators.
Merged revisions 44058-44075,44078-44084,44086-44108,44110-44365,44367,44369-44414,44416-44419,44421-44457,44467-44469,44471-44511,44513-44535,44537-44737 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
................
r44467 | danieljames | 2008-04-16 18:35:56 +0100 (Wed, 16 Apr 2008) | 2 lines
Add C++-0x support to the test allocators.
................
r44468 | danieljames | 2008-04-16 18:36:06 +0100 (Wed, 16 Apr 2008) | 2 lines
Add a C++-0x node_constructor.
................
r44469 | danieljames | 2008-04-16 18:36:16 +0100 (Wed, 16 Apr 2008) | 2 lines
C++-0x constructor for node.
................
r44516 | danieljames | 2008-04-17 21:41:48 +0100 (Thu, 17 Apr 2008) | 16 lines
Merge in my work so far on implementing emplace for compilers with variadic
template & rvalue references.
Merged revisions 44059-44062 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/dev
........
r44059 | danieljames | 2008-04-05 17:41:25 +0100 (Sat, 05 Apr 2008) | 1 line
First stab at implementing emplace - only for compilers with variadic template & rvalue references.
........
r44062 | danieljames | 2008-04-05 19:12:09 +0100 (Sat, 05 Apr 2008) | 1 line
Better variable template arguments, need to add proper support to BoostBook.
........
................
r44616 | danieljames | 2008-04-20 13:30:19 +0100 (Sun, 20 Apr 2008) | 1 line
Merge with trunk, fixes tabs.
................
r44618 | danieljames | 2008-04-20 13:42:38 +0100 (Sun, 20 Apr 2008) | 2 lines
Some extra compile tests.
................
r44619 | danieljames | 2008-04-20 13:42:50 +0100 (Sun, 20 Apr 2008) | 2 lines
Fix an error message.
................
r44703 | danieljames | 2008-04-21 20:19:50 +0100 (Mon, 21 Apr 2008) | 15 lines
Merge latest changes from trunk.
Merged revisions 44616-44702 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r44650 | danieljames | 2008-04-20 22:08:57 +0100 (Sun, 20 Apr 2008) | 1 line
Update an include.
........
r44697 | danieljames | 2008-04-21 16:55:40 +0100 (Mon, 21 Apr 2008) | 1 line
Factor out the code for choosing the bucket count, and which bucket that hash values map to make it easier to experiment with alternative policies.
........
................
r44733 | danieljames | 2008-04-23 07:55:43 +0100 (Wed, 23 Apr 2008) | 2 lines
Remove 'reserve_extra'.
................
r44734 | danieljames | 2008-04-23 07:55:55 +0100 (Wed, 23 Apr 2008) | 2 lines
More unnecessary copy tests - showing some weakness in the emplace implementation.
................
r44735 | danieljames | 2008-04-23 07:56:06 +0100 (Wed, 23 Apr 2008) | 2 lines
More tests.
................
r44736 | danieljames | 2008-04-23 07:56:19 +0100 (Wed, 23 Apr 2008) | 2 lines
Comment out a test which requires a C++0x std::pair.
................
r44737 | danieljames | 2008-04-23 07:56:35 +0100 (Wed, 23 Apr 2008) | 2 lines
Avoid creating unnecessary copies in unordered_set::emplace and unordered_map::emplace.
................
[SVN r44738]
2008-04-23 07:09:58 +00:00
|
|
|
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
|
|
|
template <class... Args>
|
|
|
|
std::pair<iterator, bool> emplace(Args&&... args)
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::pair_cast<iterator, bool>(
|
|
|
|
base.insert(std::forward<Args>(args)...));
|
|
|
|
}
|
|
|
|
|
|
|
|
template <class... Args>
|
2008-08-11 07:52:37 +00:00
|
|
|
iterator emplace_hint(const_iterator hint, Args&&... args)
|
Merge support for emplace for compilers with rvalue references and variadic templates arguments, and better use of C++0x allocators.
Merged revisions 44058-44075,44078-44084,44086-44108,44110-44365,44367,44369-44414,44416-44419,44421-44457,44467-44469,44471-44511,44513-44535,44537-44737 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
................
r44467 | danieljames | 2008-04-16 18:35:56 +0100 (Wed, 16 Apr 2008) | 2 lines
Add C++-0x support to the test allocators.
................
r44468 | danieljames | 2008-04-16 18:36:06 +0100 (Wed, 16 Apr 2008) | 2 lines
Add a C++-0x node_constructor.
................
r44469 | danieljames | 2008-04-16 18:36:16 +0100 (Wed, 16 Apr 2008) | 2 lines
C++-0x constructor for node.
................
r44516 | danieljames | 2008-04-17 21:41:48 +0100 (Thu, 17 Apr 2008) | 16 lines
Merge in my work so far on implementing emplace for compilers with variadic
template & rvalue references.
Merged revisions 44059-44062 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/dev
........
r44059 | danieljames | 2008-04-05 17:41:25 +0100 (Sat, 05 Apr 2008) | 1 line
First stab at implementing emplace - only for compilers with variadic template & rvalue references.
........
r44062 | danieljames | 2008-04-05 19:12:09 +0100 (Sat, 05 Apr 2008) | 1 line
Better variable template arguments, need to add proper support to BoostBook.
........
................
r44616 | danieljames | 2008-04-20 13:30:19 +0100 (Sun, 20 Apr 2008) | 1 line
Merge with trunk, fixes tabs.
................
r44618 | danieljames | 2008-04-20 13:42:38 +0100 (Sun, 20 Apr 2008) | 2 lines
Some extra compile tests.
................
r44619 | danieljames | 2008-04-20 13:42:50 +0100 (Sun, 20 Apr 2008) | 2 lines
Fix an error message.
................
r44703 | danieljames | 2008-04-21 20:19:50 +0100 (Mon, 21 Apr 2008) | 15 lines
Merge latest changes from trunk.
Merged revisions 44616-44702 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r44650 | danieljames | 2008-04-20 22:08:57 +0100 (Sun, 20 Apr 2008) | 1 line
Update an include.
........
r44697 | danieljames | 2008-04-21 16:55:40 +0100 (Mon, 21 Apr 2008) | 1 line
Factor out the code for choosing the bucket count, and which bucket that hash values map to make it easier to experiment with alternative policies.
........
................
r44733 | danieljames | 2008-04-23 07:55:43 +0100 (Wed, 23 Apr 2008) | 2 lines
Remove 'reserve_extra'.
................
r44734 | danieljames | 2008-04-23 07:55:55 +0100 (Wed, 23 Apr 2008) | 2 lines
More unnecessary copy tests - showing some weakness in the emplace implementation.
................
r44735 | danieljames | 2008-04-23 07:56:06 +0100 (Wed, 23 Apr 2008) | 2 lines
More tests.
................
r44736 | danieljames | 2008-04-23 07:56:19 +0100 (Wed, 23 Apr 2008) | 2 lines
Comment out a test which requires a C++0x std::pair.
................
r44737 | danieljames | 2008-04-23 07:56:35 +0100 (Wed, 23 Apr 2008) | 2 lines
Avoid creating unnecessary copies in unordered_set::emplace and unordered_map::emplace.
................
[SVN r44738]
2008-04-23 07:09:58 +00:00
|
|
|
{
|
|
|
|
return iterator(
|
|
|
|
base.insert_hint(get(hint), std::forward<Args>(args)...));
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
std::pair<iterator, bool> insert(const value_type& obj)
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::pair_cast<iterator, bool>(
|
2006-05-07 13:24:17 +00:00
|
|
|
base.insert(obj));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator insert(const_iterator hint, const value_type& obj)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.insert_hint(get(hint), obj));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
template <class InputIterator>
|
|
|
|
void insert(InputIterator first, InputIterator last)
|
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
base.insert_range(first, last);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator erase(const_iterator position)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.data_.erase(get(position)));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_type erase(const key_type& k)
|
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return base.erase_key(k);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator erase(const_iterator first, const_iterator last)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.data_.erase_range(get(first), get(last)));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void clear()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
base.data_.clear();
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void swap(unordered_set& other)
|
|
|
|
{
|
|
|
|
base.swap(other.base);
|
|
|
|
}
|
|
|
|
|
|
|
|
// observers
|
|
|
|
|
|
|
|
hasher hash_function() const
|
|
|
|
{
|
|
|
|
return base.hash_function();
|
|
|
|
}
|
|
|
|
|
|
|
|
key_equal key_eq() const
|
|
|
|
{
|
|
|
|
return base.key_eq();
|
|
|
|
}
|
|
|
|
|
|
|
|
// lookup
|
|
|
|
|
|
|
|
const_iterator find(const key_type& k) const
|
|
|
|
{
|
|
|
|
return const_iterator(base.find(k));
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type count(const key_type& k) const
|
|
|
|
{
|
|
|
|
return base.count(k);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<const_iterator, const_iterator>
|
|
|
|
equal_range(const key_type& k) const
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::pair_cast<const_iterator, const_iterator>(
|
|
|
|
base.equal_range(k));
|
|
|
|
}
|
|
|
|
|
|
|
|
// bucket interface
|
|
|
|
|
|
|
|
size_type bucket_count() const
|
|
|
|
{
|
|
|
|
return base.bucket_count();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type max_bucket_count() const
|
|
|
|
{
|
|
|
|
return base.max_bucket_count();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type bucket_size(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return base.data_.bucket_size(n);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_type bucket(const key_type& k) const
|
|
|
|
{
|
|
|
|
return base.bucket(k);
|
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
local_iterator begin(size_type n)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return local_iterator(base.data_.begin(n));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
const_local_iterator begin(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.begin(n));
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
local_iterator end(size_type n)
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return local_iterator(base.data_.end(n));
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_local_iterator end(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.end(n));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-30 14:11:47 +00:00
|
|
|
const_local_iterator cbegin(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.begin(n));
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const_local_iterator cend(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.end(n));
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
2006-04-17 11:06:08 +00:00
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
// hash policy
|
|
|
|
|
|
|
|
float load_factor() const
|
|
|
|
{
|
|
|
|
return base.load_factor();
|
|
|
|
}
|
|
|
|
|
|
|
|
float max_load_factor() const
|
|
|
|
{
|
|
|
|
return base.max_load_factor();
|
|
|
|
}
|
|
|
|
|
|
|
|
void max_load_factor(float m)
|
|
|
|
{
|
|
|
|
base.max_load_factor(m);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rehash(size_type n)
|
|
|
|
{
|
|
|
|
base.rehash(n);
|
|
|
|
}
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-07-03 14:34:56 +00:00
|
|
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
|
|
|
friend bool operator==(unordered_set const&, unordered_set const&);
|
|
|
|
friend bool operator!=(unordered_set const&, unordered_set const&);
|
|
|
|
#else
|
2008-06-21 15:32:11 +00:00
|
|
|
friend bool operator==<>(unordered_set const&, unordered_set const&);
|
|
|
|
friend bool operator!=<>(unordered_set const&, unordered_set const&);
|
2008-07-03 14:34:56 +00:00
|
|
|
#endif
|
2008-06-21 15:32:11 +00:00
|
|
|
}; // class template unordered_set
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline bool operator==(unordered_set<T, H, P, A> const& m1,
|
|
|
|
unordered_set<T, H, P, A> const& m2)
|
|
|
|
{
|
2008-06-22 13:54:45 +00:00
|
|
|
return boost::unordered_detail::equals(m1.base, m2.base);
|
2008-06-21 15:32:11 +00:00
|
|
|
}
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline bool operator!=(unordered_set<T, H, P, A> const& m1,
|
|
|
|
unordered_set<T, H, P, A> const& m2)
|
|
|
|
{
|
2008-06-22 13:54:45 +00:00
|
|
|
return !boost::unordered_detail::equals(m1.base, m2.base);
|
2008-06-21 15:32:11 +00:00
|
|
|
}
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline void swap(unordered_set<T, H, P, A> &m1,
|
2005-04-24 14:23:24 +00:00
|
|
|
unordered_set<T, H, P, A> &m2)
|
|
|
|
{
|
|
|
|
m1.swap(m2);
|
|
|
|
}
|
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class Value, class Hash, class Pred, class Alloc>
|
2005-04-24 14:23:24 +00:00
|
|
|
class unordered_multiset
|
|
|
|
{
|
2006-05-07 13:24:17 +00:00
|
|
|
typedef boost::unordered_detail::hash_types_equivalent_keys<
|
|
|
|
Value, Value, Hash, Pred, Alloc
|
2007-01-10 00:03:26 +00:00
|
|
|
> implementation;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
BOOST_DEDUCED_TYPENAME implementation::hash_table base;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
|
|
|
public:
|
2007-01-10 00:03:26 +00:00
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
//types
|
2007-01-10 00:03:26 +00:00
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
typedef Value key_type;
|
|
|
|
typedef Value value_type;
|
|
|
|
typedef Hash hasher;
|
|
|
|
typedef Pred key_equal;
|
|
|
|
|
|
|
|
typedef Alloc allocator_type;
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::pointer pointer;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::const_pointer const_pointer;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::reference reference;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME allocator_type::const_reference const_reference;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::size_type size_type;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::difference_type difference_type;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_iterator iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_iterator const_iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_local_iterator local_iterator;
|
|
|
|
typedef BOOST_DEDUCED_TYPENAME implementation::const_local_iterator const_local_iterator;
|
2005-04-24 14:23:24 +00:00
|
|
|
|
|
|
|
// construct/destroy/copy
|
|
|
|
|
|
|
|
explicit unordered_multiset(
|
|
|
|
size_type n = boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
const hasher &hf = hasher(),
|
|
|
|
const key_equal &eql = key_equal(),
|
|
|
|
const allocator_type &a = allocator_type())
|
|
|
|
: base(n, hf, eql, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2008-07-04 22:57:20 +00:00
|
|
|
explicit unordered_multiset(allocator_type const& a)
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
: base(boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
hasher(), key_equal(), a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_multiset(unordered_multiset const& other, allocator_type const& a)
|
|
|
|
: base(other.base, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
template <class InputIterator>
|
2006-02-26 18:33:49 +00:00
|
|
|
unordered_multiset(InputIterator f, InputIterator l)
|
|
|
|
: base(f, l, boost::unordered_detail::default_initial_bucket_count,
|
|
|
|
hasher(), key_equal(), allocator_type())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
template <class InputIterator>
|
|
|
|
unordered_multiset(InputIterator f, InputIterator l, size_type n,
|
2005-04-24 14:23:24 +00:00
|
|
|
const hasher &hf = hasher(),
|
|
|
|
const key_equal &eql = key_equal(),
|
|
|
|
const allocator_type &a = allocator_type())
|
|
|
|
: base(f, l, n, hf, eql, a)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
#if defined(BOOST_HAS_RVALUE_REFS)
|
|
|
|
unordered_multiset(unordered_multiset&& other)
|
|
|
|
: base(other.base, boost::unordered_detail::move_tag())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_multiset(unordered_multiset&& other, allocator_type const& a)
|
|
|
|
: base(other.base, a, boost::unordered_detail::move_tag())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
unordered_multiset& operator=(unordered_multiset&& x)
|
|
|
|
{
|
|
|
|
base.move(x.base);
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
#else
|
2008-05-10 13:53:35 +00:00
|
|
|
unordered_multiset(boost::unordered_detail::move_from<unordered_multiset<Value, Hash, Pred, Alloc> > other)
|
2008-06-15 17:03:37 +00:00
|
|
|
: base(other.source.base, boost::unordered_detail::move_tag())
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2008-05-20 15:13:57 +00:00
|
|
|
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0593)
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
unordered_multiset& operator=(unordered_multiset x)
|
|
|
|
{
|
|
|
|
base.move(x.base);
|
|
|
|
return *this;
|
|
|
|
}
|
2008-05-20 15:13:57 +00:00
|
|
|
#endif
|
Movable unordered containers, full support only for compilers with rvalue references.
Merged revisions 44076-44414 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44076 | danieljames | 2008-04-06 20:41:19 +0100 (Sun, 06 Apr 2008) | 1 line
Move semantics for compilers with rvalue references.
........
r44077 | danieljames | 2008-04-06 20:48:59 +0100 (Sun, 06 Apr 2008) | 1 line
Do move assignment 'properly'.
........
r44085 | danieljames | 2008-04-06 22:46:04 +0100 (Sun, 06 Apr 2008) | 1 line
Use normal references for the move members, reset the source buckets_ pointer to stop the buckets getting deleted, and remove a superflous pointer check.
........
r44109 | danieljames | 2008-04-07 23:49:36 +0100 (Mon, 07 Apr 2008) | 1 line
Add missing tests.
........
r44366 | danieljames | 2008-04-13 12:59:46 +0100 (Sun, 13 Apr 2008) | 1 line
Avoid using rvalue references in the implementation files.
........
r44368 | danieljames | 2008-04-13 15:13:33 +0100 (Sun, 13 Apr 2008) | 6 lines
Use a cut down version of the work in progress move library to implement move
semantics on more compilers. Unfortunately the move constructor with allocator
isn't really practical at the moment, since in the case where the container
can't be moved, and the allocators aren't equal it will copy the container
twice.
........
[SVN r44486]
2008-04-17 07:34:15 +00:00
|
|
|
#endif
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
private:
|
|
|
|
|
2007-12-20 19:16:30 +00:00
|
|
|
BOOST_DEDUCED_TYPENAME implementation::iterator_base const&
|
2005-04-24 14:23:24 +00:00
|
|
|
get(const_iterator const& it)
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::iterator_access::get(it);
|
|
|
|
}
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
allocator_type get_allocator() const
|
|
|
|
{
|
|
|
|
return base.get_allocator();
|
|
|
|
}
|
|
|
|
|
|
|
|
// size and capacity
|
|
|
|
|
|
|
|
bool empty() const
|
|
|
|
{
|
|
|
|
return base.empty();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type size() const
|
|
|
|
{
|
|
|
|
return base.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type max_size() const
|
|
|
|
{
|
|
|
|
return base.max_size();
|
|
|
|
}
|
|
|
|
|
|
|
|
// iterators
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
iterator begin()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return iterator(base.data_.begin());
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_iterator begin() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.begin());
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
iterator end()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return iterator(base.data_.end());
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_iterator end() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.end());
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-30 14:11:47 +00:00
|
|
|
const_iterator cbegin() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.begin());
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const_iterator cend() const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_iterator(base.data_.end());
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
// modifiers
|
|
|
|
|
Merge support for emplace for compilers with rvalue references and variadic templates arguments, and better use of C++0x allocators.
Merged revisions 44058-44075,44078-44084,44086-44108,44110-44365,44367,44369-44414,44416-44419,44421-44457,44467-44469,44471-44511,44513-44535,44537-44737 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
................
r44467 | danieljames | 2008-04-16 18:35:56 +0100 (Wed, 16 Apr 2008) | 2 lines
Add C++-0x support to the test allocators.
................
r44468 | danieljames | 2008-04-16 18:36:06 +0100 (Wed, 16 Apr 2008) | 2 lines
Add a C++-0x node_constructor.
................
r44469 | danieljames | 2008-04-16 18:36:16 +0100 (Wed, 16 Apr 2008) | 2 lines
C++-0x constructor for node.
................
r44516 | danieljames | 2008-04-17 21:41:48 +0100 (Thu, 17 Apr 2008) | 16 lines
Merge in my work so far on implementing emplace for compilers with variadic
template & rvalue references.
Merged revisions 44059-44062 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/dev
........
r44059 | danieljames | 2008-04-05 17:41:25 +0100 (Sat, 05 Apr 2008) | 1 line
First stab at implementing emplace - only for compilers with variadic template & rvalue references.
........
r44062 | danieljames | 2008-04-05 19:12:09 +0100 (Sat, 05 Apr 2008) | 1 line
Better variable template arguments, need to add proper support to BoostBook.
........
................
r44616 | danieljames | 2008-04-20 13:30:19 +0100 (Sun, 20 Apr 2008) | 1 line
Merge with trunk, fixes tabs.
................
r44618 | danieljames | 2008-04-20 13:42:38 +0100 (Sun, 20 Apr 2008) | 2 lines
Some extra compile tests.
................
r44619 | danieljames | 2008-04-20 13:42:50 +0100 (Sun, 20 Apr 2008) | 2 lines
Fix an error message.
................
r44703 | danieljames | 2008-04-21 20:19:50 +0100 (Mon, 21 Apr 2008) | 15 lines
Merge latest changes from trunk.
Merged revisions 44616-44702 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r44650 | danieljames | 2008-04-20 22:08:57 +0100 (Sun, 20 Apr 2008) | 1 line
Update an include.
........
r44697 | danieljames | 2008-04-21 16:55:40 +0100 (Mon, 21 Apr 2008) | 1 line
Factor out the code for choosing the bucket count, and which bucket that hash values map to make it easier to experiment with alternative policies.
........
................
r44733 | danieljames | 2008-04-23 07:55:43 +0100 (Wed, 23 Apr 2008) | 2 lines
Remove 'reserve_extra'.
................
r44734 | danieljames | 2008-04-23 07:55:55 +0100 (Wed, 23 Apr 2008) | 2 lines
More unnecessary copy tests - showing some weakness in the emplace implementation.
................
r44735 | danieljames | 2008-04-23 07:56:06 +0100 (Wed, 23 Apr 2008) | 2 lines
More tests.
................
r44736 | danieljames | 2008-04-23 07:56:19 +0100 (Wed, 23 Apr 2008) | 2 lines
Comment out a test which requires a C++0x std::pair.
................
r44737 | danieljames | 2008-04-23 07:56:35 +0100 (Wed, 23 Apr 2008) | 2 lines
Avoid creating unnecessary copies in unordered_set::emplace and unordered_map::emplace.
................
[SVN r44738]
2008-04-23 07:09:58 +00:00
|
|
|
#if defined(BOOST_HAS_RVALUE_REFS) && defined(BOOST_HAS_VARIADIC_TMPL)
|
|
|
|
template <class... Args>
|
|
|
|
iterator emplace(Args&&... args)
|
|
|
|
{
|
|
|
|
return iterator(base.insert(std::forward<Args>(args)...));
|
|
|
|
}
|
|
|
|
|
|
|
|
template <class... Args>
|
2008-08-11 07:52:37 +00:00
|
|
|
iterator emplace_hint(const_iterator hint, Args&&... args)
|
Merge support for emplace for compilers with rvalue references and variadic templates arguments, and better use of C++0x allocators.
Merged revisions 44058-44075,44078-44084,44086-44108,44110-44365,44367,44369-44414,44416-44419,44421-44457,44467-44469,44471-44511,44513-44535,44537-44737 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
................
r44467 | danieljames | 2008-04-16 18:35:56 +0100 (Wed, 16 Apr 2008) | 2 lines
Add C++-0x support to the test allocators.
................
r44468 | danieljames | 2008-04-16 18:36:06 +0100 (Wed, 16 Apr 2008) | 2 lines
Add a C++-0x node_constructor.
................
r44469 | danieljames | 2008-04-16 18:36:16 +0100 (Wed, 16 Apr 2008) | 2 lines
C++-0x constructor for node.
................
r44516 | danieljames | 2008-04-17 21:41:48 +0100 (Thu, 17 Apr 2008) | 16 lines
Merge in my work so far on implementing emplace for compilers with variadic
template & rvalue references.
Merged revisions 44059-44062 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/dev
........
r44059 | danieljames | 2008-04-05 17:41:25 +0100 (Sat, 05 Apr 2008) | 1 line
First stab at implementing emplace - only for compilers with variadic template & rvalue references.
........
r44062 | danieljames | 2008-04-05 19:12:09 +0100 (Sat, 05 Apr 2008) | 1 line
Better variable template arguments, need to add proper support to BoostBook.
........
................
r44616 | danieljames | 2008-04-20 13:30:19 +0100 (Sun, 20 Apr 2008) | 1 line
Merge with trunk, fixes tabs.
................
r44618 | danieljames | 2008-04-20 13:42:38 +0100 (Sun, 20 Apr 2008) | 2 lines
Some extra compile tests.
................
r44619 | danieljames | 2008-04-20 13:42:50 +0100 (Sun, 20 Apr 2008) | 2 lines
Fix an error message.
................
r44703 | danieljames | 2008-04-21 20:19:50 +0100 (Mon, 21 Apr 2008) | 15 lines
Merge latest changes from trunk.
Merged revisions 44616-44702 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r44650 | danieljames | 2008-04-20 22:08:57 +0100 (Sun, 20 Apr 2008) | 1 line
Update an include.
........
r44697 | danieljames | 2008-04-21 16:55:40 +0100 (Mon, 21 Apr 2008) | 1 line
Factor out the code for choosing the bucket count, and which bucket that hash values map to make it easier to experiment with alternative policies.
........
................
r44733 | danieljames | 2008-04-23 07:55:43 +0100 (Wed, 23 Apr 2008) | 2 lines
Remove 'reserve_extra'.
................
r44734 | danieljames | 2008-04-23 07:55:55 +0100 (Wed, 23 Apr 2008) | 2 lines
More unnecessary copy tests - showing some weakness in the emplace implementation.
................
r44735 | danieljames | 2008-04-23 07:56:06 +0100 (Wed, 23 Apr 2008) | 2 lines
More tests.
................
r44736 | danieljames | 2008-04-23 07:56:19 +0100 (Wed, 23 Apr 2008) | 2 lines
Comment out a test which requires a C++0x std::pair.
................
r44737 | danieljames | 2008-04-23 07:56:35 +0100 (Wed, 23 Apr 2008) | 2 lines
Avoid creating unnecessary copies in unordered_set::emplace and unordered_map::emplace.
................
[SVN r44738]
2008-04-23 07:09:58 +00:00
|
|
|
{
|
|
|
|
return iterator(base.insert_hint(get(hint), std::forward<Args>(args)...));
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
iterator insert(const value_type& obj)
|
|
|
|
{
|
2006-05-07 13:24:17 +00:00
|
|
|
return iterator(base.insert(obj));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator insert(const_iterator hint, const value_type& obj)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.insert_hint(get(hint), obj));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
template <class InputIterator>
|
|
|
|
void insert(InputIterator first, InputIterator last)
|
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
base.insert_range(first, last);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator erase(const_iterator position)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.data_.erase(get(position)));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_type erase(const key_type& k)
|
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return base.erase_key(k);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2007-10-11 23:49:31 +00:00
|
|
|
iterator erase(const_iterator first, const_iterator last)
|
2005-04-24 14:23:24 +00:00
|
|
|
{
|
2008-04-17 07:45:20 +00:00
|
|
|
return iterator(base.data_.erase_range(get(first), get(last)));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void clear()
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
base.data_.clear();
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void swap(unordered_multiset& other)
|
|
|
|
{
|
|
|
|
base.swap(other.base);
|
|
|
|
}
|
|
|
|
|
|
|
|
// observers
|
|
|
|
|
|
|
|
hasher hash_function() const
|
|
|
|
{
|
|
|
|
return base.hash_function();
|
|
|
|
}
|
|
|
|
|
|
|
|
key_equal key_eq() const
|
|
|
|
{
|
|
|
|
return base.key_eq();
|
|
|
|
}
|
|
|
|
|
|
|
|
// lookup
|
|
|
|
|
|
|
|
const_iterator find(const key_type& k) const
|
|
|
|
{
|
|
|
|
return const_iterator(base.find(k));
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type count(const key_type& k) const
|
|
|
|
{
|
|
|
|
return base.count(k);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::pair<const_iterator, const_iterator>
|
|
|
|
equal_range(const key_type& k) const
|
|
|
|
{
|
|
|
|
return boost::unordered_detail::pair_cast<const_iterator, const_iterator>(
|
|
|
|
base.equal_range(k));
|
|
|
|
}
|
|
|
|
|
|
|
|
// bucket interface
|
|
|
|
|
|
|
|
size_type bucket_count() const
|
|
|
|
{
|
|
|
|
return base.bucket_count();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type max_bucket_count() const
|
|
|
|
{
|
|
|
|
return base.max_bucket_count();
|
|
|
|
}
|
|
|
|
|
|
|
|
size_type bucket_size(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return base.data_.bucket_size(n);
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_type bucket(const key_type& k) const
|
|
|
|
{
|
|
|
|
return base.bucket(k);
|
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
local_iterator begin(size_type n)
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return local_iterator(base.data_.begin(n));
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_local_iterator begin(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.begin(n));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-17 11:06:08 +00:00
|
|
|
local_iterator end(size_type n)
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return local_iterator(base.data_.end(n));
|
2006-04-17 11:06:08 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
const_local_iterator end(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.end(n));
|
2005-04-24 14:23:24 +00:00
|
|
|
}
|
|
|
|
|
2006-04-30 14:11:47 +00:00
|
|
|
const_local_iterator cbegin(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.begin(n));
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const_local_iterator cend(size_type n) const
|
|
|
|
{
|
Add the new allocator constructors, use composition instead of inheritance for the implementation and some small fixes.
Merged revisions 43922,43962,43966,43971,43981,43995-43996,44042,44046-44048,44057 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r43922 | danieljames | 2008-03-29 14:55:59 +0000 (Sat, 29 Mar 2008) | 1 line
Fix some typos in the reference documentation.
........
r43962 | danieljames | 2008-03-31 18:29:59 +0100 (Mon, 31 Mar 2008) | 1 line
Add a name variable to the release script, so that I can have different release names in different branches.
........
r43966 | danieljames | 2008-03-31 18:43:16 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the image directory for standalone docs.
........
r43971 | danieljames | 2008-03-31 19:17:25 +0100 (Mon, 31 Mar 2008) | 1 line
Fix the unordered stylesheet.
........
r43981 | danieljames | 2008-04-01 13:31:26 +0100 (Tue, 01 Apr 2008) | 2 lines
Cast the pointer in the Visual C++ 6.5 _Charalloc method.
........
r43995 | danieljames | 2008-04-02 12:50:27 +0100 (Wed, 02 Apr 2008) | 1 line
Try using the interprocess containers for testing. Compilation is a bit slower but hopefully I'll run into less cross-platform problems.
........
r43996 | danieljames | 2008-04-02 13:25:49 +0100 (Wed, 02 Apr 2008) | 1 line
Revert my experiment with the interprocess containers. It didn't work out.
........
r44042 | danieljames | 2008-04-04 20:38:09 +0100 (Fri, 04 Apr 2008) | 1 line
Make hash table data a member of hash table, instead of a base.
........
r44046 | danieljames | 2008-04-05 12:38:05 +0100 (Sat, 05 Apr 2008) | 1 line
Remove rvalue_ref from Jamfile.v2 - I didn't mean to check it in.
........
r44047 | danieljames | 2008-04-05 12:39:38 +0100 (Sat, 05 Apr 2008) | 1 line
New constructors with allocators.
........
r44048 | danieljames | 2008-04-05 12:58:11 +0100 (Sat, 05 Apr 2008) | 1 line
Document the new constructors.
........
r44057 | danieljames | 2008-04-05 17:08:23 +0100 (Sat, 05 Apr 2008) | 1 line
Fix some bugs in the exception testing code.
........
[SVN r44417]
2008-04-14 15:10:26 +00:00
|
|
|
return const_local_iterator(base.data_.end(n));
|
2006-04-30 14:11:47 +00:00
|
|
|
}
|
|
|
|
|
2005-04-24 14:23:24 +00:00
|
|
|
// hash policy
|
|
|
|
|
|
|
|
float load_factor() const
|
|
|
|
{
|
|
|
|
return base.load_factor();
|
|
|
|
}
|
|
|
|
|
|
|
|
float max_load_factor() const
|
|
|
|
{
|
|
|
|
return base.max_load_factor();
|
|
|
|
}
|
|
|
|
|
|
|
|
void max_load_factor(float m)
|
|
|
|
{
|
|
|
|
base.max_load_factor(m);
|
|
|
|
}
|
|
|
|
|
|
|
|
void rehash(size_type n)
|
|
|
|
{
|
|
|
|
base.rehash(n);
|
|
|
|
}
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-07-03 14:34:56 +00:00
|
|
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
|
|
|
friend bool operator==(unordered_multiset const&, unordered_multiset const&);
|
|
|
|
friend bool operator!=(unordered_multiset const&, unordered_multiset const&);
|
|
|
|
#else
|
2008-06-21 15:32:11 +00:00
|
|
|
friend bool operator==<>(unordered_multiset const&, unordered_multiset const&);
|
|
|
|
friend bool operator!=<>(unordered_multiset const&, unordered_multiset const&);
|
2008-07-03 14:34:56 +00:00
|
|
|
#endif
|
2008-06-21 15:32:11 +00:00
|
|
|
}; // class template unordered_multiset
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline bool operator==(unordered_multiset<T, H, P, A> const& m1,
|
|
|
|
unordered_multiset<T, H, P, A> const& m2)
|
|
|
|
{
|
2008-06-22 13:54:45 +00:00
|
|
|
return boost::unordered_detail::equals(m1.base, m2.base);
|
2008-06-21 15:32:11 +00:00
|
|
|
}
|
Merge in support for equality operators for the unordered containers and
hopefully better cross-platform support.
Merged revisions 44778-44835,44837-44918 via svnmerge from
https://svn.boost.org/svn/boost/branches/unordered/trunk
........
r44778 | danieljames | 2008-04-26 17:15:44 +0100 (Sat, 26 Apr 2008) | 2 lines
Remove a trailing comma.
........
r44779 | danieljames | 2008-04-26 17:23:51 +0100 (Sat, 26 Apr 2008) | 1 line
Merge in support for equality operators.
........
r44780 | danieljames | 2008-04-26 17:28:44 +0100 (Sat, 26 Apr 2008) | 1 line
Use my own list container to avoid working around STL container bugs.
........
r44833 | danieljames | 2008-04-28 08:03:43 +0100 (Mon, 28 Apr 2008) | 1 line
Better equality tests.
........
r44834 | danieljames | 2008-04-28 08:04:03 +0100 (Mon, 28 Apr 2008) | 1 line
Remove a superfluous check.
........
r44835 | danieljames | 2008-04-28 08:04:21 +0100 (Mon, 28 Apr 2008) | 1 line
Add equality reference documentation.
........
r44916 | danieljames | 2008-04-30 08:16:52 +0100 (Wed, 30 Apr 2008) | 1 line
New version of list.hpp
........
r44917 | danieljames | 2008-04-30 08:18:31 +0100 (Wed, 30 Apr 2008) | 1 line
Support compilers without ADL in the compile tests.
........
r44918 | danieljames | 2008-04-30 08:25:20 +0100 (Wed, 30 Apr 2008) | 7 lines
Change the typedef of buffered functions as it was confusing MSVC 6.5
get_allocator wasn't compiling when the allocator workaround is used because it
couldn't cast from the wrapped allocator to an allocator of another type. So
use value_alloc_ when it's available (it's only unavailable on compilers with
C++0x support, which don't require the workaround).
........
[SVN r44919]
2008-04-30 07:57:04 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline bool operator!=(unordered_multiset<T, H, P, A> const& m1,
|
|
|
|
unordered_multiset<T, H, P, A> const& m2)
|
|
|
|
{
|
2008-06-22 13:54:45 +00:00
|
|
|
return !boost::unordered_detail::equals(m1.base, m2.base);
|
2008-06-21 15:32:11 +00:00
|
|
|
}
|
2005-04-24 14:23:24 +00:00
|
|
|
|
2008-06-21 15:32:11 +00:00
|
|
|
template <class T, class H, class P, class A>
|
|
|
|
inline void swap(unordered_multiset<T, H, P, A> &m1,
|
2005-04-24 14:23:24 +00:00
|
|
|
unordered_multiset<T, H, P, A> &m2)
|
|
|
|
{
|
|
|
|
m1.swap(m2);
|
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace boost
|
|
|
|
|
|
|
|
#endif // BOOST_UNORDERED_SET_HPP_INCLUDED
|