|
| | MOMO_STATIC_ASSERT (internal::ObjectAlignmenter< Key >::Check(KeyValueTraits::keyAlignment)) |
| |
| | MOMO_STATIC_ASSERT (internal::ObjectAlignmenter< Value >::Check(KeyValueTraits::valueAlignment)) |
| |
| | HashMultiMap () |
| |
| | HashMultiMap (const HashTraits &hashTraits, MemManager memManager=MemManager()) |
| |
| template<typename ArgIterator , typename ArgSentinel , typename = decltype(internal::MapPairConverter<ArgIterator>::Convert(*std::declval<ArgIterator>()))> |
| | HashMultiMap (ArgIterator begin, ArgSentinel end, const HashTraits &hashTraits=HashTraits(), MemManager memManager=MemManager()) |
| |
| template<typename Pair = std::pair<Key, Value>> |
| | HashMultiMap (std::initializer_list< Pair > pairs) |
| |
| template<typename Pair = std::pair<Key, Value>> |
| | HashMultiMap (std::initializer_list< Pair > pairs, const HashTraits &hashTraits, MemManager memManager=MemManager()) |
| |
| | HashMultiMap (HashMultiMap &&hashMultiMap) noexcept |
| |
| | HashMultiMap (const HashMultiMap &hashMultiMap) |
| |
| | HashMultiMap (const HashMultiMap &hashMultiMap, MemManager memManager) |
| |
| | ~HashMultiMap () noexcept |
| |
| HashMultiMap & | operator= (HashMultiMap &&hashMultiMap) noexcept |
| |
| HashMultiMap & | operator= (const HashMultiMap &hashMultiMap) |
| |
| void | Swap (HashMultiMap &hashMultiMap) noexcept |
| |
| ConstIterator | GetBegin () const noexcept |
| |
| Iterator | GetBegin () noexcept |
| |
| ConstIterator | GetEnd () const noexcept |
| |
| Iterator | GetEnd () noexcept |
| |
| const HashTraits & | GetHashTraits () const noexcept |
| |
| const MemManager & | GetMemManager () const noexcept |
| |
| MemManager & | GetMemManager () noexcept |
| |
| size_t | GetValueCount () const noexcept |
| |
| size_t | GetCount () const noexcept |
| |
| bool | IsEmpty () const noexcept |
| |
| void | Clear () noexcept |
| |
| ConstKeyBounds | GetKeyBounds () const noexcept |
| |
| KeyBounds | GetKeyBounds () noexcept |
| |
| size_t | GetKeyCount () const noexcept |
| |
| MOMO_FORCEINLINE ConstKeyIterator | Find (const Key &key) const |
| |
| MOMO_FORCEINLINE KeyIterator | Find (const Key &key) |
| |
| template<typename KeyArg > |
| MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, ConstKeyIterator > | Find (const KeyArg &key) const |
| |
| template<typename KeyArg > |
| MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, KeyIterator > | Find (const KeyArg &key) |
| |
| MOMO_FORCEINLINE bool | ContainsKey (const Key &key) const |
| |
| template<typename KeyArg > |
| MOMO_FORCEINLINE internal::EnableIf< IsValidKeyArg< KeyArg >::value, bool > | ContainsKey (const KeyArg &key) const |
| |
| template<typename ValueCreator > |
| Iterator | AddCrt (Key &&key, ValueCreator &&valueCreator) |
| |
| template<typename... ValueArgs> |
| Iterator | AddVar (Key &&key, ValueArgs &&... valueArgs) |
| |
| Iterator | Add (Key &&key, Value &&value) |
| |
| Iterator | Add (Key &&key, const Value &value) |
| |
| template<typename ValueCreator > |
| Iterator | AddCrt (const Key &key, ValueCreator &&valueCreator) |
| |
| template<typename... ValueArgs> |
| Iterator | AddVar (const Key &key, ValueArgs &&... valueArgs) |
| |
| Iterator | Add (const Key &key, Value &&value) |
| |
| Iterator | Add (const Key &key, const Value &value) |
| |
| template<typename ValueCreator > |
| Iterator | AddCrt (ConstKeyIterator keyIter, ValueCreator &&valueCreator) |
| |
| template<typename... ValueArgs> |
| Iterator | AddVar (ConstKeyIterator keyIter, ValueArgs &&... valueArgs) |
| |
| Iterator | Add (ConstKeyIterator keyIter, Value &&value) |
| |
| Iterator | Add (ConstKeyIterator keyIter, const Value &value) |
| |
| template<typename ArgIterator , typename ArgSentinel , typename = decltype(internal::MapPairConverter<ArgIterator>::Convert(*std::declval<ArgIterator>()))> |
| void | Add (ArgIterator begin, ArgSentinel end) |
| |
| template<typename Pair = std::pair<Key, Value>> |
| void | Add (std::initializer_list< Pair > pairs) |
| |
| KeyIterator | InsertKey (Key &&key) |
| |
| KeyIterator | InsertKey (const Key &key) |
| |
| template<typename KeyCreator > |
| KeyIterator | AddKeyCrt (ConstKeyIterator keyIter, KeyCreator &&keyCreator) |
| |
| Iterator | Remove (ConstKeyIterator keyIter, size_t valueIndex) |
| |
| Iterator | Remove (ConstIterator iter) |
| |
| template<typename PairFilter > |
| internal::EnableIf< internal::IsInvocable< const PairFilter &, bool, const Key &, const Value & >::value, size_t > | Remove (const PairFilter &pairFilter) |
| |
| Iterator | RemoveValues (ConstKeyIterator keyIter) |
| |
| KeyIterator | RemoveKey (ConstKeyIterator keyIter) |
| |
| size_t | RemoveKey (const Key &key) |
| |
| template<typename KeyArg , bool extraCheck = true> |
| void | ResetKey (ConstKeyIterator keyIter, KeyArg &&keyArg) |
| |
| ConstIterator | MakeIterator (ConstKeyIterator keyIter, size_t valueIndex=0) const |
| |
| Iterator | MakeIterator (KeyIterator keyIter, size_t valueIndex=0) |
| |
| Iterator | MakeMutableIterator (ConstIterator iter) |
| |
| KeyIterator | MakeMutableKeyIterator (ConstKeyIterator keyIter) |
| |
| void | CheckIterator (ConstIterator iter, bool allowEmpty=true) const |
| |
| void | CheckKeyIterator (ConstKeyIterator keyIter, bool allowEmpty=true) const |
| |
template<typename TKey, typename TValue, typename THashTraits = HashTraits<TKey>, typename TMemManager = MemManagerDefault, typename TKeyValueTraits = HashMultiMapKeyValueTraits<TKey, TValue, TMemManager>, typename TSettings = HashMultiMapSettings>
class momo::HashMultiMap< TKey, TValue, THashTraits, TMemManager, TKeyValueTraits, TSettings >
All HashMultiMap functions and constructors have strong exception safety, but not the following cases:
- Functions
Add receiving many items have basic exception safety.
- Function
Remove receiving predicate has basic exception safety.
- In case default
KeyValueTraits: If function Add, AddVar or AddCrt receiving argument Key&& key throws exception, this argument may be changed.