Construct a new key-value pair from the specified key
and data
. If there is
no key-value pair associated with the specified key
in a given jss::concurrent_map
object, insert the new
one, otherwise replace the existing entry with the new one.
template<typename KT,typename DT> void insert_or_replace(KT && key,DT && data);
Construct a new key-value pair for the specified key
as value_type(std::forward<KT>(key),std::forward<DT>(data))
. Insert that pair into the map,
replacing any existing entry with the same key
.
If an entry is replaced then the old entry is destroyed when there
is no longer any accesses to the map object that could reference
it.
std::bad_alloc
if memory for the new
entry cannot be allocated. Any exception thrown by the construction
of the new value_type
object from key
and data
. Any exception
thrown by the application of the Hasher
or KeyEquals
objects.
insert_or_replace()
may be called concurrently with
any other member function of jss::concurrent_map
on a given instance (except for the constructor and destructor)
without external synchronization.
#include <jss/concurrent_map.hpp>