Allow forward declaration for btree containers

This commit is contained in:
greg
2019-12-31 17:40:06 -05:00
parent 4e1a5a2699
commit d6753feed0
2 changed files with 30 additions and 8 deletions
+13 -8
View File
@@ -54,6 +54,7 @@
#include <initializer_list>
#include <iterator>
#include "phmap_fwd_decl.h"
#include "phmap_base.h"
#if PHMAP_HAVE_STD_STRING_VIEW
@@ -3808,8 +3809,9 @@ namespace container_internal {
// ----------------------------------------------------------------------
template <typename Key, typename Compare = std::less<Key>,
typename Alloc = std::allocator<Key>>
// btree_set - default values in phmap_fwd_decl.h
// ----------------------------------------------------------------------
template <typename Key, typename Compare, typename Alloc>
class btree_set : public container_internal::btree_set_container<
container_internal::btree<container_internal::set_params<
Key, Compare, Alloc, /*TargetNodeSize=*/ 256, /*Multi=*/ false>>>
@@ -3864,8 +3866,9 @@ namespace container_internal {
}
// ----------------------------------------------------------------------
template <typename Key, typename Compare = std::less<Key>,
typename Alloc = std::allocator<Key>>
// btree_multiset - default values in phmap_fwd_decl.h
// ----------------------------------------------------------------------
template <typename Key, typename Compare, typename Alloc>
class btree_multiset : public container_internal::btree_multiset_container<
container_internal::btree<container_internal::set_params<
Key, Compare, Alloc, /*TargetNodeSize=*/ 256, /*Multi=*/ true>>>
@@ -3921,8 +3924,9 @@ namespace container_internal {
// ----------------------------------------------------------------------
template <typename Key, typename Value, typename Compare = std::less<Key>,
typename Alloc = std::allocator<std::pair<const Key, Value>>>
// btree_map - default values in phmap_fwd_decl.h
// ----------------------------------------------------------------------
template <typename Key, typename Value, typename Compare, typename Alloc>
class btree_map : public container_internal::btree_map_container<
container_internal::btree<container_internal::map_params<
Key, Value, Compare, Alloc, /*TargetNodeSize=*/ 256, /*Multi=*/ false>>>
@@ -3979,8 +3983,9 @@ namespace container_internal {
}
// ----------------------------------------------------------------------
template <typename Key, typename Value, typename Compare = std::less<Key>,
typename Alloc = std::allocator<std::pair<const Key, Value>>>
// btree_multimap - default values in phmap_fwd_decl.h
// ----------------------------------------------------------------------
template <typename Key, typename Value, typename Compare, typename Alloc>
class btree_multimap : public container_internal::btree_multimap_container<
container_internal::btree<container_internal::map_params<
Key, Value, Compare, Alloc, /*TargetNodeSize=*/ 256, /*Multi=*/ true>>>
+17
View File
@@ -13,6 +13,7 @@
#include <memory>
#include <utility>
#include <functional>
#if defined(PHMAP_USE_ABSL_HASH)
namespace absl { template <class T> struct Hash; };
@@ -58,6 +59,7 @@ namespace phmap {
} // namespace container_internal
// ------------- forward declarations for hash containers ----------------------------------
template <class T,
class Hash = phmap::container_internal::hash_default_hash<T>,
class Eq = phmap::container_internal::hash_default_eq<T>,
@@ -118,7 +120,22 @@ namespace phmap {
class Mutex = phmap::NullMutex> // use std::mutex to enable internal locks
class parallel_node_hash_map;
// ------------- forward declarations for btree containers ----------------------------------
template <typename Key, typename Compare = std::less<Key>,
typename Alloc = phmap::Allocator<Key>>
class btree_set;
template <typename Key, typename Compare = std::less<Key>,
typename Alloc = phmap::Allocator<Key>>
class btree_multiset;
template <typename Key, typename Value, typename Compare = std::less<Key>,
typename Alloc = phmap::Allocator<phmap::container_internal::Pair<const Key, Value>>>
class btree_map;
template <typename Key, typename Value, typename Compare = std::less<Key>,
typename Alloc = phmap::Allocator<phmap::container_internal::Pair<const Key, Value>>>
class btree_multimap;
} // namespace phmap