projects
/
platform
/
upstream
/
boost.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 1.57.0
[platform/upstream/boost.git]
/
boost
/
unordered
/
unordered_map.hpp
diff --git
a/boost/unordered/unordered_map.hpp
b/boost/unordered/unordered_map.hpp
index
ce52e5b
..
9b18079
100644
(file)
--- a/
boost/unordered/unordered_map.hpp
+++ b/
boost/unordered/unordered_map.hpp
@@
-9,8
+9,9
@@
#ifndef BOOST_UNORDERED_UNORDERED_MAP_HPP_INCLUDED
#define BOOST_UNORDERED_UNORDERED_MAP_HPP_INCLUDED
#ifndef BOOST_UNORDERED_UNORDERED_MAP_HPP_INCLUDED
#define BOOST_UNORDERED_UNORDERED_MAP_HPP_INCLUDED
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
+#include <boost/config.hpp>
+#if defined(BOOST_HAS_PRAGMA_ONCE)
+#pragma once
#endif
#include <boost/unordered/unordered_map_fwd.hpp>
#endif
#include <boost/unordered/unordered_map_fwd.hpp>
@@
-56,7
+57,6
@@
namespace unordered
private:
typedef boost::unordered::detail::map<A, K, T, H, P> types;
private:
typedef boost::unordered::detail::map<A, K, T, H, P> types;
- typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits;
typedef typename types::table table;
typedef typename types::traits allocator_traits;
typedef typename types::table table;
@@
-118,17
+118,19
@@
namespace unordered
#if defined(BOOST_UNORDERED_USE_MOVE)
unordered_map(BOOST_RV_REF(unordered_map) other)
#if defined(BOOST_UNORDERED_USE_MOVE)
unordered_map(BOOST_RV_REF(unordered_map) other)
+ BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
-#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+#elif !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_map(unordered_map&& other)
unordered_map(unordered_map&& other)
+ BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
#endif
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
#endif
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_map(unordered_map&&, allocator_type const&);
#endif
unordered_map(unordered_map&&, allocator_type const&);
#endif
@@
-143,7
+145,7
@@
namespace unordered
// Destructor
// Destructor
- ~unordered_map();
+ ~unordered_map()
BOOST_NOEXCEPT
;
// Assign
// Assign
@@
-166,7
+168,7
@@
namespace unordered
return *this;
}
return *this;
}
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_map& operator=(unordered_map&& x)
{
table_.move_assign(x.table_);
unordered_map& operator=(unordered_map&& x)
{
table_.move_assign(x.table_);
@@
-179,60
+181,60
@@
namespace unordered
unordered_map& operator=(std::initializer_list<value_type>);
#endif
unordered_map& operator=(std::initializer_list<value_type>);
#endif
- allocator_type get_allocator() const
+ allocator_type get_allocator() const
BOOST_NOEXCEPT
{
return table_.node_alloc();
}
// size and capacity
{
return table_.node_alloc();
}
// size and capacity
- bool empty() const
+ bool empty() const
BOOST_NOEXCEPT
{
return table_.size_ == 0;
}
{
return table_.size_ == 0;
}
- size_type size() const
+ size_type size() const
BOOST_NOEXCEPT
{
return table_.size_;
}
{
return table_.size_;
}
- size_type max_size() const;
+ size_type max_size() const
BOOST_NOEXCEPT
;
// iterators
// iterators
- iterator begin()
+ iterator begin()
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- const_iterator begin() const
+ const_iterator begin() const
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- iterator end()
+ iterator end()
BOOST_NOEXCEPT
{
return iterator();
}
{
return iterator();
}
- const_iterator end() const
+ const_iterator end() const
BOOST_NOEXCEPT
{
return const_iterator();
}
{
return const_iterator();
}
- const_iterator cbegin() const
+ const_iterator cbegin() const
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- const_iterator cend() const
+ const_iterator cend() const
BOOST_NOEXCEPT
{
return const_iterator();
}
// emplace
{
return const_iterator();
}
// emplace
-#if !defined(BOOST_NO_VARIADIC_TEMPLATES)
+#if !defined(BOOST_NO_
CXX11_
VARIADIC_TEMPLATES)
template <class... Args>
std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
{
template <class... Args>
std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
{
@@
-450,12
+452,12
@@
namespace unordered
// bucket interface
// bucket interface
- size_type bucket_count() const
+ size_type bucket_count() const
BOOST_NOEXCEPT
{
return table_.bucket_count_;
}
{
return table_.bucket_count_;
}
- size_type max_bucket_count() const
+ size_type max_bucket_count() const
BOOST_NOEXCEPT
{
return table_.max_bucket_count();
}
{
return table_.max_bucket_count();
}
@@
-464,22
+466,19
@@
namespace unordered
size_type bucket(const key_type& k) const
{
size_type bucket(const key_type& k) const
{
- return table::to_bucket(table_.bucket_count_,
- table_.hash(k));
+ return table_.hash_to_bucket(table_.hash(k));
}
local_iterator begin(size_type n)
{
}
local_iterator begin(size_type n)
{
- return table_.size_ ? local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- local_iterator();
+ return local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
const_local_iterator begin(size_type n) const
{
}
const_local_iterator begin(size_type n) const
{
- return table_.size_ ? const_local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- const_local_iterator();
+ return const_local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
local_iterator end(size_type)
}
local_iterator end(size_type)
@@
-494,9
+493,8
@@
namespace unordered
const_local_iterator cbegin(size_type n) const
{
const_local_iterator cbegin(size_type n) const
{
- return table_.size_ ? const_local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- const_local_iterator();
+ return const_local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
const_local_iterator cend(size_type) const
}
const_local_iterator cend(size_type) const
@@
-506,13
+504,13
@@
namespace unordered
// hash policy
// hash policy
- float max_load_factor() const
+ float max_load_factor() const
BOOST_NOEXCEPT
{
return table_.mlf_;
}
{
return table_.mlf_;
}
- float load_factor() const;
- void max_load_factor(float);
+ float load_factor() const
BOOST_NOEXCEPT
;
+ void max_load_factor(float)
BOOST_NOEXCEPT
;
void rehash(size_type);
void reserve(size_type);
void rehash(size_type);
void reserve(size_type);
@@
-542,7
+540,6
@@
namespace unordered
private:
typedef boost::unordered::detail::multimap<A, K, T, H, P> types;
private:
typedef boost::unordered::detail::multimap<A, K, T, H, P> types;
- typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits;
typedef typename types::table table;
typedef typename types::traits allocator_traits;
typedef typename types::table table;
@@
-604,17
+601,19
@@
namespace unordered
#if defined(BOOST_UNORDERED_USE_MOVE)
unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
#if defined(BOOST_UNORDERED_USE_MOVE)
unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
+ BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
-#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+#elif !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_multimap(unordered_multimap&& other)
unordered_multimap(unordered_multimap&& other)
+ BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
#endif
: table_(other.table_, boost::unordered::detail::move_tag())
{
}
#endif
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_multimap(unordered_multimap&&, allocator_type const&);
#endif
unordered_multimap(unordered_multimap&&, allocator_type const&);
#endif
@@
-629,7
+628,7
@@
namespace unordered
// Destructor
// Destructor
- ~unordered_multimap();
+ ~unordered_multimap()
BOOST_NOEXCEPT
;
// Assign
// Assign
@@
-653,7
+652,7
@@
namespace unordered
return *this;
}
return *this;
}
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
unordered_multimap& operator=(unordered_multimap&& x)
{
table_.move_assign(x.table_);
unordered_multimap& operator=(unordered_multimap&& x)
{
table_.move_assign(x.table_);
@@
-666,60
+665,60
@@
namespace unordered
unordered_multimap& operator=(std::initializer_list<value_type>);
#endif
unordered_multimap& operator=(std::initializer_list<value_type>);
#endif
- allocator_type get_allocator() const
+ allocator_type get_allocator() const
BOOST_NOEXCEPT
{
return table_.node_alloc();
}
// size and capacity
{
return table_.node_alloc();
}
// size and capacity
- bool empty() const
+ bool empty() const
BOOST_NOEXCEPT
{
return table_.size_ == 0;
}
{
return table_.size_ == 0;
}
- size_type size() const
+ size_type size() const
BOOST_NOEXCEPT
{
return table_.size_;
}
{
return table_.size_;
}
- size_type max_size() const;
+ size_type max_size() const
BOOST_NOEXCEPT
;
// iterators
// iterators
- iterator begin()
+ iterator begin()
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- const_iterator begin() const
+ const_iterator begin() const
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- iterator end()
+ iterator end()
BOOST_NOEXCEPT
{
return iterator();
}
{
return iterator();
}
- const_iterator end() const
+ const_iterator end() const
BOOST_NOEXCEPT
{
return const_iterator();
}
{
return const_iterator();
}
- const_iterator cbegin() const
+ const_iterator cbegin() const
BOOST_NOEXCEPT
{
return table_.begin();
}
{
return table_.begin();
}
- const_iterator cend() const
+ const_iterator cend() const
BOOST_NOEXCEPT
{
return const_iterator();
}
// emplace
{
return const_iterator();
}
// emplace
-#if !defined(BOOST_NO_VARIADIC_TEMPLATES)
+#if !defined(BOOST_NO_
CXX11_
VARIADIC_TEMPLATES)
template <class... Args>
iterator emplace(BOOST_FWD_REF(Args)... args)
{
template <class... Args>
iterator emplace(BOOST_FWD_REF(Args)... args)
{
@@
-933,12
+932,12
@@
namespace unordered
// bucket interface
// bucket interface
- size_type bucket_count() const
+ size_type bucket_count() const
BOOST_NOEXCEPT
{
return table_.bucket_count_;
}
{
return table_.bucket_count_;
}
- size_type max_bucket_count() const
+ size_type max_bucket_count() const
BOOST_NOEXCEPT
{
return table_.max_bucket_count();
}
{
return table_.max_bucket_count();
}
@@
-947,22
+946,19
@@
namespace unordered
size_type bucket(const key_type& k) const
{
size_type bucket(const key_type& k) const
{
- return table::to_bucket(table_.bucket_count_,
- table_.hash(k));
+ return table_.hash_to_bucket(table_.hash(k));
}
local_iterator begin(size_type n)
{
}
local_iterator begin(size_type n)
{
- return table_.size_ ? local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- local_iterator();
+ return local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
const_local_iterator begin(size_type n) const
{
}
const_local_iterator begin(size_type n) const
{
- return table_.size_ ? const_local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- const_local_iterator();
+ return const_local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
local_iterator end(size_type)
}
local_iterator end(size_type)
@@
-977,9
+973,8
@@
namespace unordered
const_local_iterator cbegin(size_type n) const
{
const_local_iterator cbegin(size_type n) const
{
- return table_.size_ ? const_local_iterator(
- table_.get_start(n), n, table_.bucket_count_) :
- const_local_iterator();
+ return const_local_iterator(
+ table_.begin(n), n, table_.bucket_count_);
}
const_local_iterator cend(size_type) const
}
const_local_iterator cend(size_type) const
@@
-989,13
+984,13
@@
namespace unordered
// hash policy
// hash policy
- float max_load_factor() const
+ float max_load_factor() const
BOOST_NOEXCEPT
{
return table_.mlf_;
}
{
return table_.mlf_;
}
- float load_factor() const;
- void max_load_factor(float);
+ float load_factor() const
BOOST_NOEXCEPT
;
+ void max_load_factor(float)
BOOST_NOEXCEPT
;
void rehash(size_type);
void reserve(size_type);
void rehash(size_type);
void reserve(size_type);
@@
-1067,7
+1062,7
@@
namespace unordered
}
template <class K, class T, class H, class P, class A>
}
template <class K, class T, class H, class P, class A>
- unordered_map<K,T,H,P,A>::~unordered_map() {}
+ unordered_map<K,T,H,P,A>::~unordered_map()
BOOST_NOEXCEPT
{}
template <class K, class T, class H, class P, class A>
unordered_map<K,T,H,P,A>::unordered_map(
template <class K, class T, class H, class P, class A>
unordered_map<K,T,H,P,A>::unordered_map(
@@
-1076,7
+1071,7
@@
namespace unordered
{
}
{
}
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
template <class K, class T, class H, class P, class A>
unordered_map<K,T,H,P,A>::unordered_map(
template <class K, class T, class H, class P, class A>
unordered_map<K,T,H,P,A>::unordered_map(
@@
-1115,7
+1110,7
@@
namespace unordered
// size and capacity
template <class K, class T, class H, class P, class A>
// size and capacity
template <class K, class T, class H, class P, class A>
- std::size_t unordered_map<K,T,H,P,A>::max_size() const
+ std::size_t unordered_map<K,T,H,P,A>::max_size() const
BOOST_NOEXCEPT
{
return table_.max_size();
}
{
return table_.max_size();
}
@@
-1284,13
+1279,13
@@
namespace unordered
// hash policy
template <class K, class T, class H, class P, class A>
// hash policy
template <class K, class T, class H, class P, class A>
- float unordered_map<K,T,H,P,A>::load_factor() const
+ float unordered_map<K,T,H,P,A>::load_factor() const
BOOST_NOEXCEPT
{
return table_.load_factor();
}
template <class K, class T, class H, class P, class A>
{
return table_.load_factor();
}
template <class K, class T, class H, class P, class A>
- void unordered_map<K,T,H,P,A>::max_load_factor(float m)
+ void unordered_map<K,T,H,P,A>::max_load_factor(float m)
BOOST_NOEXCEPT
{
table_.max_load_factor(m);
}
{
table_.max_load_factor(m);
}
@@
-1400,7
+1395,7
@@
namespace unordered
}
template <class K, class T, class H, class P, class A>
}
template <class K, class T, class H, class P, class A>
- unordered_multimap<K,T,H,P,A>::~unordered_multimap() {}
+ unordered_multimap<K,T,H,P,A>::~unordered_multimap()
BOOST_NOEXCEPT
{}
template <class K, class T, class H, class P, class A>
unordered_multimap<K,T,H,P,A>::unordered_multimap(
template <class K, class T, class H, class P, class A>
unordered_multimap<K,T,H,P,A>::unordered_multimap(
@@
-1409,7
+1404,7
@@
namespace unordered
{
}
{
}
-#if !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_
CXX11_
RVALUE_REFERENCES)
template <class K, class T, class H, class P, class A>
unordered_multimap<K,T,H,P,A>::unordered_multimap(
template <class K, class T, class H, class P, class A>
unordered_multimap<K,T,H,P,A>::unordered_multimap(
@@
-1448,7
+1443,7
@@
namespace unordered
// size and capacity
template <class K, class T, class H, class P, class A>
// size and capacity
template <class K, class T, class H, class P, class A>
- std::size_t unordered_multimap<K,T,H,P,A>::max_size() const
+ std::size_t unordered_multimap<K,T,H,P,A>::max_size() const
BOOST_NOEXCEPT
{
return table_.max_size();
}
{
return table_.max_size();
}
@@
-1596,13
+1591,13
@@
namespace unordered
// hash policy
template <class K, class T, class H, class P, class A>
// hash policy
template <class K, class T, class H, class P, class A>
- float unordered_multimap<K,T,H,P,A>::load_factor() const
+ float unordered_multimap<K,T,H,P,A>::load_factor() const
BOOST_NOEXCEPT
{
return table_.load_factor();
}
template <class K, class T, class H, class P, class A>
{
return table_.load_factor();
}
template <class K, class T, class H, class P, class A>
- void unordered_multimap<K,T,H,P,A>::max_load_factor(float m)
+ void unordered_multimap<K,T,H,P,A>::max_load_factor(float m)
BOOST_NOEXCEPT
{
table_.max_load_factor(m);
}
{
table_.max_load_factor(m);
}