[DEV] add a real move in adding / setting element
This commit is contained in:
parent
61006df765
commit
89faec42ca
19
etk/Map.hpp
19
etk/Map.hpp
@ -447,6 +447,21 @@ namespace etk {
|
|||||||
}
|
}
|
||||||
m_data[elementId]->second = _value;
|
m_data[elementId]->second = _value;
|
||||||
}
|
}
|
||||||
|
//! @previous
|
||||||
|
void add(const ETK_MAP_TYPE_KEY& _key, ETK_MAP_TYPE_DATA&& _value) {
|
||||||
|
int64_t elementId = getId(_key);
|
||||||
|
if (elementId <0) {
|
||||||
|
etk::Pair<ETK_MAP_TYPE_KEY, ETK_MAP_TYPE_DATA>* tmp = ETK_NEW(pairType, etk::move(_key), etk::move(_value));
|
||||||
|
if (tmp == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_data.pushBack(tmp);
|
||||||
|
// Order data if needed.
|
||||||
|
sort();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_data[elementId]->second = etk::move(_value);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief Set an element value
|
* @brief Set an element value
|
||||||
* @note add and set is the same function.
|
* @note add and set is the same function.
|
||||||
@ -456,6 +471,10 @@ namespace etk {
|
|||||||
void set(const ETK_MAP_TYPE_KEY& _key, const ETK_MAP_TYPE_DATA& _value) {
|
void set(const ETK_MAP_TYPE_KEY& _key, const ETK_MAP_TYPE_DATA& _value) {
|
||||||
add(etk::move(_key), etk::move(_value));
|
add(etk::move(_key), etk::move(_value));
|
||||||
}
|
}
|
||||||
|
//! @previous
|
||||||
|
void set(const ETK_MAP_TYPE_KEY& _key, ETK_MAP_TYPE_DATA&& _value) {
|
||||||
|
add(etk::move(_key), etk::move(_value));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief Remove an element in the Map table.
|
* @brief Remove an element in the Map table.
|
||||||
* @param[in] _key Name of the element to remove.
|
* @param[in] _key Name of the element to remove.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user