8#ifndef INCLUDED_BDLC_FLATHASHMAP
9#define INCLUDED_BDLC_FLATHASHMAP
303#include <bdlscm_version.h>
335#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
336#include <bsl_initializer_list.h>
338#include <bsl_cstddef.h>
339#include <bsl_ostream.h>
340#include <bsl_utility.h>
342#if BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
346# define COMPILING_BDLC_FLATHASHMAP_H
348# undef COMPILING_BDLC_FLATHASHMAP_H
351#if defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
352#include <bsl_type_traits.h>
354 #ifndef BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES
355 #error Rvalue references curiously absent despite native 'type_traits'.
370template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
374template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
378template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
388template <
class KEY,
class VALUE,
class ENTRY>
392#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
397 template <
class... ARGS>
408 template <
class KEY_TYPE>
415 static const KEY&
key(
const ENTRY& entry);
432template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
452 template <
class K,
class V,
class H,
class E>
524 template <
class INPUT_ITERATOR>
528 template <
class INPUT_ITERATOR>
533 template <
class INPUT_ITERATOR>
539 template <
class INPUT_ITERATOR>
547#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
548 FlatHashMap(bsl::initializer_list<value_type> values,
550 FlatHashMap(bsl::initializer_list<value_type> values,
553 FlatHashMap(bsl::initializer_list<value_type> values,
573 FlatHashMap(bsl::initializer_list<value_type> values,
625#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
643 template <
class KEY_TYPE>
650 VALUE&
at(
const KEY& key);
667#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
682 template <
class... ARGS>
701 template <
class... ARGS>
710 bsl::size_t
erase(
const KEY& key);
737#if defined(BSLS_PLATFORM_CMP_SUN) && BSLS_PLATFORM_CMP_VERSION < 0x5130
738 template <
class VALUE_TYPE>
740#elif !defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
741 template <
class VALUE_TYPE>
753 template <
class VALUE_TYPE>
755 VALUE_TYPE&&>::value,
766#if defined(BSLS_PLATFORM_CMP_SUN) && BSLS_PLATFORM_CMP_VERSION < 0x5130
767 template <
class VALUE_TYPE>
769#elif !defined(BSLS_COMPILERFEATURES_SUPPORT_TRAITS_HEADER)
770 template <
class VALUE_TYPE>
780 template <
class VALUE_TYPE>
782 VALUE_TYPE&&>::value,
802 template <
class INPUT_ITERATOR>
803 void insert(INPUT_ITERATOR first, INPUT_ITERATOR last);
805#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
811 void insert(bsl::initializer_list<value_type> values);
821 void rehash(bsl::size_t minimumCapacity);
835 void reserve(bsl::size_t numEntries);
841#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
842#ifdef BSLS_LIBRARYFEATURES_HAS_CPP11_PAIR_PIECEWISE_CONSTRUCTOR
852 template<
class... ARGS>
864 template <
class... ARGS>
866 BloombergLP::bslmf::MovableRef<KEY> key,
877 template<
class... ARGS>
889 template <
class... ARGS>
891 BloombergLP::bslmf::MovableRef<KEY> key,
921 const VALUE&
at(
const KEY& key)
const;
929 bool contains(
const KEY& key)
const;
934 bsl::size_t count(
const KEY& key)
const;
948 const KEY& key)
const;
978 bsl::size_t
size()
const;
1015 bsl::ostream&
print(bsl::ostream& stream,
1017 int spacesPerLevel = 4)
const;
1027template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1028bool operator==(
const FlatHashMap<KEY, VALUE, HASH, EQUAL> &lhs,
1029 const FlatHashMap<KEY, VALUE, HASH, EQUAL> &rhs);
1036template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1037bool operator!=(
const FlatHashMap<KEY, VALUE, HASH, EQUAL> &lhs,
1038 const FlatHashMap<KEY, VALUE, HASH, EQUAL> &rhs);
1045template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1055template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1068#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
1069template <
class KEY,
class VALUE,
class ENTRY>
1070template <
class... ARGS>
1085template <
class KEY,
class VALUE,
class ENTRY>
1086template <
class KEY_TYPE>
1107template <
class KEY,
class VALUE,
class ENTRY>
1119template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1122: d_impl(0, HASH(), EQUAL())
1126template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1130: d_impl(0, HASH(), EQUAL(), basicAllocator)
1134template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1137: d_impl(capacity, HASH(), EQUAL())
1141template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1144 bsl::size_t capacity,
1146: d_impl(capacity, HASH(), EQUAL(), basicAllocator)
1150template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1153 bsl::size_t capacity,
1156: d_impl(capacity, hash, EQUAL(), basicAllocator)
1160template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1163 bsl::size_t capacity,
1167: d_impl(capacity, hash, equal, basicAllocator)
1171template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1172template <
class INPUT_ITERATOR>
1175 INPUT_ITERATOR first,
1176 INPUT_ITERATOR last,
1178: d_impl(0, HASH(), EQUAL(), basicAllocator)
1183template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1184template <
class INPUT_ITERATOR>
1187 INPUT_ITERATOR first,
1188 INPUT_ITERATOR last,
1189 bsl::size_t capacity,
1191: d_impl(capacity, HASH(), EQUAL(), basicAllocator)
1196template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1197template <
class INPUT_ITERATOR>
1200 INPUT_ITERATOR first,
1201 INPUT_ITERATOR last,
1202 bsl::size_t capacity,
1205: d_impl(capacity, hash, EQUAL(), basicAllocator)
1210template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1211template <
class INPUT_ITERATOR>
1214 INPUT_ITERATOR first,
1215 INPUT_ITERATOR last,
1216 bsl::size_t capacity,
1220: d_impl(capacity, hash, equal, basicAllocator)
1225#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1226template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1229 bsl::initializer_list<value_type> values,
1240template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1243 bsl::initializer_list<value_type> values,
1244 bsl::size_t capacity,
1246: FlatHashMap(values.begin(),
1255template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1258 bsl::initializer_list<value_type> values,
1259 bsl::size_t capacity,
1262: FlatHashMap(values.
begin(),
1271template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1274 bsl::initializer_list<value_type> values,
1275 bsl::size_t capacity,
1279: FlatHashMap(values.
begin(),
1289template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1294: d_impl(original.d_impl, basicAllocator)
1298template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1302: d_impl(
bslmf::MovableRefUtil::move(
1303 bslmf::MovableRefUtil::access(original).d_impl))
1307template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1312: d_impl(
bslmf::MovableRefUtil::move(
1313 bslmf::MovableRefUtil::access(original).d_impl),
1318template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1325template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1330 d_impl = rhs.d_impl;
1335template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1348#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1349template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1353 bsl::initializer_list<value_type> values)
1368template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1369template <
class KEY_TYPE>
1377template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1383 if (node == d_impl.
end()) {
1384 BloombergLP::bslstl::StdExceptUtil::throwOutOfRange(
1385 "FlatHashMap<...>::at(key_type): invalid key value");
1388 return node->second;
1391template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1399template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1407#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
1408template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1409template <
class... ARGS>
1417template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1418template <
class... ARGS>
1429template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1432 return d_impl.
erase(key);
1435template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1442 return d_impl.
erase(position);
1445template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1455 return d_impl.
erase(position);
1458template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1463 return d_impl.
erase(first, last);
1466template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1471 return d_impl.
find(key);
1474template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1475template <
class INPUT_ITERATOR>
1477 INPUT_ITERATOR last)
1479 d_impl.
insert(first, last);
1482#if defined(BSLS_COMPILERFEATURES_SUPPORT_GENERALIZED_INITIALIZERS)
1483template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1485 bsl::initializer_list<value_type> values)
1487 insert(values.begin(), values.end());
1491template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1495 d_impl.
rehash(minimumCapacity);
1498template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1505template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1512#if !BSLS_COMPILERFEATURES_SIMULATE_CPP11_FEATURES
1513#ifdef BSLS_LIBRARYFEATURES_HAS_CPP11_PAIR_PIECEWISE_CONSTRUCTOR
1514template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1515template<
class... ARGS>
1523 std::piecewise_construct,
1524 std::forward_as_tuple(key),
1528template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1529template <
class... ARGS>
1531FlatHashMap<KEY, VALUE, HASH, EQUAL>::try_emplace(
1532 BloombergLP::bslmf::MovableRef<KEY> key,
1537 std::piecewise_construct,
1542template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1543template<
class... ARGS>
1545FlatHashMap<KEY, VALUE, HASH, EQUAL>::try_emplace(const_iterator,
1551 std::piecewise_construct,
1552 std::forward_as_tuple(key),
1557template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1558template <
class... ARGS>
1560FlatHashMap<KEY, VALUE, HASH, EQUAL>::try_emplace(const_iterator,
1561 BloombergLP::bslmf::MovableRef<KEY> key,
1566 std::piecewise_construct,
1576template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1581 return d_impl.
begin();
1584template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1589 return d_impl.
end();
1594template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1600 d_impl.
swap(other.d_impl);
1604template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1610 if (node == d_impl.
end()) {
1611 BloombergLP::bslstl::StdExceptUtil::throwOutOfRange(
1612 "FlatHashMap<...>::at(key_type) const: invalid key value");
1615 return node->second;
1618template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1625template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1632template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1636 return d_impl.
count(key);
1639template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1643 return d_impl.
empty();
1646template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1654template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1659 return d_impl.
find(key);
1662template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1669template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1676template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1683template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1690template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1694 return d_impl.
size();
1699template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1704 return d_impl.
begin();
1706template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1714template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1719 return d_impl.
cend();
1722template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1727 return d_impl.
end();
1732template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1739template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1741 bsl::ostream& stream,
1743 int spacesPerLevel)
const
1754 while (iter != end()) {
1767template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1770 const FlatHashMap<KEY, VALUE, HASH, EQUAL>& rhs)
1772 return lhs.d_impl == rhs.d_impl;
1775template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1778 const FlatHashMap<KEY, VALUE, HASH, EQUAL>& rhs)
1780 return lhs.d_impl != rhs.d_impl;
1783template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1786 bsl::ostream& stream,
1787 const FlatHashMap<KEY, VALUE, HASH, EQUAL>& map)
1789 return map.
print(stream, 0, -1);
1793template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1795void bdlc::swap(FlatHashMap<KEY, VALUE, HASH, EQUAL>& a,
1796 FlatHashMap<KEY, VALUE, HASH, EQUAL>& b)
1807template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
1816template <
class KEY,
class VALUE,
class HASH,
class EQUAL>
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition bdlc_flathashmap.h:433
HASH hasher
Definition bdlc_flathashmap.h:464
const value_type * const_pointer
Definition bdlc_flathashmap.h:468
value_type * pointer
Definition bdlc_flathashmap.h:467
bsl::ptrdiff_t difference_type
Definition bdlc_flathashmap.h:462
friend void swap(FlatHashMap< K, V, H, E > &, FlatHashMap< K, V, H, E > &)
const value_type & const_reference
Definition bdlc_flathashmap.h:466
void clear()
Definition bdlc_flathashmap.h:1394
VALUE & at(const KEY &key)
Definition bdlc_flathashmap.h:1379
EQUAL key_eq() const
Definition bdlc_flathashmap.h:1671
iterator find(const KEY &key)
Definition bdlc_flathashmap.h:1469
bool contains(const KEY &key) const
Definition bdlc_flathashmap.h:1627
ImplType::const_iterator const_iterator
Definition bdlc_flathashmap.h:470
bsl::enable_if< bsl::is_convertible< VALUE_TYPE, value_type >::value, iterator >::type insert(const_iterator, BSLS_COMPILERFEATURES_FORWARD_REF(VALUE_TYPE) value)
Definition bdlc_flathashmap.h:785
bool empty() const
Definition bdlc_flathashmap.h:1641
const_iterator cbegin() const
Definition bdlc_flathashmap.h:1709
bsl::size_t size() const
Return the number of elements in this map.
Definition bdlc_flathashmap.h:1692
bsl::enable_if< bsl::is_convertible< VALUE_TYPE, value_type >::value, bsl::pair< iterator, bool > >::type insert(BSLS_COMPILERFEATURES_FORWARD_REF(VALUE_TYPE) value)
Definition bdlc_flathashmap.h:758
void rehash(bsl::size_t minimumCapacity)
Definition bdlc_flathashmap.h:1493
bslma::Allocator * allocator() const
Return the allocator used by this flat hash map to supply memory.
Definition bdlc_flathashmap.h:1734
bsl::pair< iterator, bool > emplace(ARGS &&... args)
bsl::pair< iterator, iterator > equal_range(const KEY &key)
Definition bdlc_flathashmap.h:1402
VALUE & operator[](BSLS_COMPILERFEATURES_FORWARD_REF(KEY_TYPE) key)
Definition bdlc_flathashmap.h:1371
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition bdlc_flathashmap.h:1740
const_iterator cend() const
Definition bdlc_flathashmap.h:1717
void reserve(bsl::size_t numEntries)
Definition bdlc_flathashmap.h:1500
float load_factor() const
Definition bdlc_flathashmap.h:1678
HASH hash_function() const
Definition bdlc_flathashmap.h:1664
~FlatHashMap()
Destroy this object and each of its elements.
Definition bdlc_flathashmap.h:1320
bsl::size_t erase(const KEY &key)
Definition bdlc_flathashmap.h:1430
iterator begin()
Definition bdlc_flathashmap.h:1579
FlatHashMap & operator=(const FlatHashMap &rhs)
Definition bdlc_flathashmap.h:1328
EQUAL key_compare
Definition bdlc_flathashmap.h:463
KEY key_type
Definition bdlc_flathashmap.h:459
FlatHashMap()
Definition bdlc_flathashmap.h:1121
ImplType::iterator iterator
Definition bdlc_flathashmap.h:469
float max_load_factor() const
Definition bdlc_flathashmap.h:1685
value_type & reference
Definition bdlc_flathashmap.h:465
void reset()
Definition bdlc_flathashmap.h:1507
bsl::size_t capacity() const
Definition bdlc_flathashmap.h:1620
iterator emplace_hint(const_iterator hint, ARGS &&... args)
Definition bdlc_flathashmap.h:1421
bsl::size_t count(const KEY &key) const
Definition bdlc_flathashmap.h:1634
VALUE mapped_type
Definition bdlc_flathashmap.h:460
bsl::pair< typename bsl::add_const< KEY >::type, VALUE > value_type
Definition bdlc_flathashmap.h:457
iterator end()
Definition bdlc_flathashmap.h:1587
bsl::size_t size_type
Definition bdlc_flathashmap.h:461
Definition bdlc_flathashtable.h:317
void clear()
Definition bdlc_flathashtable.h:1580
bsl::size_t erase(const KEY &key)
Definition bdlc_flathashtable.h:1632
float max_load_factor() const
Definition bdlc_flathashtable.h:2056
const_iterator cbegin() const
Definition bdlc_flathashtable.h:2092
void swap(FlatHashTable &other)
Definition bdlc_flathashtable.h:1918
void reset()
Definition bdlc_flathashtable.h:1806
bsl::pair< iterator, bool > emplace(ARGS &&... args)
iterator find(const KEY &key)
Definition bdlc_flathashtable.h:1741
iterator end()
Definition bdlc_flathashtable.h:1909
bool empty() const
Definition bdlc_flathashtable.h:1970
bsl::pair< iterator, bool > try_emplace(const KEY &key, ARGS &&... args)
bsl::enable_if< bsl::is_convertible< ENTRY_TYPE, ENTRY >::value, bsl::pair< iterator, bool > >::type insert(BSLS_COMPILERFEATURES_FORWARD_REF(ENTRY_TYPE) entry)
Definition bdlc_flathashtable.h:564
bslma::Allocator * allocator() const
Return the allocator used by this hash table to supply memory.
Definition bdlc_flathashtable.h:2118
bsl::size_t capacity() const
Definition bdlc_flathashtable.h:1936
bslstl::ForwardIterator< const bsl::pair< KEY, VALUE >, IteratorImp > const_iterator
Definition bdlc_flathashtable.h:334
bslstl::ForwardIterator< bsl::pair< KEY, VALUE >, IteratorImp > iterator
Definition bdlc_flathashtable.h:332
EQUAL key_eq() const
Definition bdlc_flathashtable.h:2032
bool contains(const KEY &key) const
Definition bdlc_flathashtable.h:1943
iterator begin()
Definition bdlc_flathashtable.h:1892
void reserve(bsl::size_t numEntries)
Definition bdlc_flathashtable.h:1787
const_iterator cend() const
Definition bdlc_flathashtable.h:2100
bsl::size_t size() const
Return the number of entries in this table.
Definition bdlc_flathashtable.h:2064
bsl::size_t count(const KEY &key) const
Definition bdlc_flathashtable.h:1962
HASH hash_function() const
Definition bdlc_flathashtable.h:2025
float load_factor() const
Definition bdlc_flathashtable.h:2043
void rehash(bsl::size_t minimumCapacity)
Definition bdlc_flathashtable.h:1766
bsl::pair< iterator, iterator > equal_range(const KEY &key)
Definition bdlc_flathashtable.h:1599
Definition bslstl_pair.h:1210
static void swap(T *a, T *b)
Definition bslalg_swaputil.h:194
Definition bslh_fibonaccibadhashwrapper.h:165
Definition bslim_printer.h:601
void printValue(const TYPE &data) const
Definition bslim_printer.h:1207
void end(bool suppressBracket=false) const
void start(bool suppressBracket=false) const
Definition bslma_allocator.h:457
Definition bslma_destructorguard.h:132
Definition bslmf_movableref.h:751
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_COMPILERFEATURES_FORWARD_REF(T)
Definition bsls_compilerfeatures.h:2012
#define BSLS_COMPILERFEATURES_FORWARD(T, V)
Definition bsls_compilerfeatures.h:2018
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bdlc_bitarray.h:503
void swap(BitArray &a, BitArray &b)
bool operator==(const BitArray &lhs, const BitArray &rhs)
bool operator!=(const BitArray &lhs, const BitArray &rhs)
BitArray operator<<(const BitArray &array, bsl::size_t numBits)
T::iterator begin(T &container)
Definition bslstl_iterator.h:1495
T::iterator end(T &container)
Definition bslstl_iterator.h:1523
Definition bdlc_flathashmap.h:1805
Definition balxml_encoderoptions.h:68
Definition bdlbb_blob.h:576
Definition bdlc_flathashmap.h:390
static void constructFromKey(ENTRY *entry, bslma::Allocator *allocator, BSLS_COMPILERFEATURES_FORWARD_REF(KEY_TYPE) key)
Definition bdlc_flathashmap.h:1088
static const KEY & key(const ENTRY &entry)
Return the key of the specified entry.
Definition bdlc_flathashmap.h:1109
static void construct(ENTRY *entry, bslma::Allocator *allocator, ARGS &&... args)
Definition bdlc_flathashmap.h:1072
Definition bslmf_enableif.h:525
Definition bslstl_equalto.h:311
Definition bslalg_hasstliterators.h:99
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator)
Definition bslma_constructionutil.h:1243
Definition bslma_usesbslmaallocator.h:343
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1060
Definition bsls_objectbuffer.h:276
TYPE * address()
Definition bsls_objectbuffer.h:334
TYPE & object()
Definition bsls_objectbuffer.h:351