momo  3.9
momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager > Class Template Reference

#include <MapUtility.h>

Inheritance diagram for momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >:
momo::HashMapKeyValueTraits< TKey, TValue, TMemManager > momo::TreeMapKeyValueTraits< TKey, TValue, TMemManager >

Public Types

typedef TKey Key
 
typedef TValue Value
 
typedef TMemManager MemManager
 
template<typename... ValueArgs>
using ValueCreator = typename ValueManager::template Creator< ValueArgs... >
 

Static Public Member Functions

template<typename ValueCreator >
static void Create (MemManager &memManager, Key &&key, ValueCreator &&valueCreator, Key *newKey, Value *newValue)
 
template<typename ValueCreator >
static void Create (MemManager &memManager, const Key &key, ValueCreator &&valueCreator, Key *newKey, Value *newValue)
 
static void Destroy (MemManager *memManager, Key &key, Value &value) noexcept
 
static void Relocate (MemManager *memManager, Key &srcKey, Value &srcValue, Key *dstKey, Value *dstValue)
 
static void Replace (MemManager &memManager, Key &srcKey, Value &srcValue, Key &dstKey, Value &dstValue)
 
static void ReplaceRelocate (MemManager &memManager, Key &srcKey, Value &srcValue, Key &midKey, Value &midValue, Key *dstKey, Value *dstValue)
 
template<typename KeyIterator , typename ValueIterator , typename Executor >
static void RelocateExec (MemManager &memManager, KeyIterator srcKeyBegin, ValueIterator srcValueBegin, KeyIterator dstKeyBegin, ValueIterator dstValueBegin, size_t count, Executor &&exec)
 
template<typename KeyArg >
static void AssignKey (MemManager &, KeyArg &&keyArg, Key &key)
 

Static Public Attributes

static const size_t keyAlignment = KeyManager::alignment
 
static const size_t valueAlignment = ValueManager::alignment
 
static const bool isKeyNothrowRelocatable = KeyManager::isNothrowRelocatable
 
static const bool isValueNothrowRelocatable = ValueManager::isNothrowRelocatable
 

Member Typedef Documentation

◆ Key

template<typename TKey , typename TValue , typename TMemManager >
typedef TKey momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Key

◆ MemManager

template<typename TKey , typename TValue , typename TMemManager >
typedef TMemManager momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::MemManager

◆ Value

template<typename TKey , typename TValue , typename TMemManager >
typedef TValue momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Value

◆ ValueCreator

template<typename TKey , typename TValue , typename TMemManager >
template<typename... ValueArgs>
using momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::ValueCreator = typename ValueManager::template Creator<ValueArgs...>

Member Function Documentation

◆ AssignKey()

template<typename TKey , typename TValue , typename TMemManager >
template<typename KeyArg >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::AssignKey ( MemManager ,
KeyArg &&  keyArg,
Key key 
)
inlinestatic

◆ Create() [1/2]

template<typename TKey , typename TValue , typename TMemManager >
template<typename ValueCreator >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Create ( MemManager memManager,
const Key key,
ValueCreator &&  valueCreator,
Key newKey,
Value newValue 
)
inlinestatic

◆ Create() [2/2]

template<typename TKey , typename TValue , typename TMemManager >
template<typename ValueCreator >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Create ( MemManager memManager,
Key &&  key,
ValueCreator &&  valueCreator,
Key newKey,
Value newValue 
)
inlinestatic

◆ Destroy()

template<typename TKey , typename TValue , typename TMemManager >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Destroy ( MemManager memManager,
Key key,
Value value 
)
inlinestaticnoexcept

◆ Relocate()

template<typename TKey , typename TValue , typename TMemManager >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Relocate ( MemManager memManager,
Key srcKey,
Value srcValue,
Key dstKey,
Value dstValue 
)
inlinestatic

◆ RelocateExec()

template<typename TKey , typename TValue , typename TMemManager >
template<typename KeyIterator , typename ValueIterator , typename Executor >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::RelocateExec ( MemManager memManager,
KeyIterator  srcKeyBegin,
ValueIterator  srcValueBegin,
KeyIterator  dstKeyBegin,
ValueIterator  dstValueBegin,
size_t  count,
Executor &&  exec 
)
inlinestatic

◆ Replace()

template<typename TKey , typename TValue , typename TMemManager >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::Replace ( MemManager memManager,
Key srcKey,
Value srcValue,
Key dstKey,
Value dstValue 
)
inlinestatic

◆ ReplaceRelocate()

template<typename TKey , typename TValue , typename TMemManager >
static void momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::ReplaceRelocate ( MemManager memManager,
Key srcKey,
Value srcValue,
Key midKey,
Value midValue,
Key dstKey,
Value dstValue 
)
inlinestatic

Member Data Documentation

◆ isKeyNothrowRelocatable

template<typename TKey , typename TValue , typename TMemManager >
const bool momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::isKeyNothrowRelocatable = KeyManager::isNothrowRelocatable
static

◆ isValueNothrowRelocatable

template<typename TKey , typename TValue , typename TMemManager >
const bool momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::isValueNothrowRelocatable = ValueManager::isNothrowRelocatable
static

◆ keyAlignment

template<typename TKey , typename TValue , typename TMemManager >
const size_t momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::keyAlignment = KeyManager::alignment
static

◆ valueAlignment

template<typename TKey , typename TValue , typename TMemManager >
const size_t momo::internal::MapKeyValueTraits< TKey, TValue, TMemManager >::valueAlignment = ValueManager::alignment
static

The documentation for this class was generated from the following file: