Go to the documentation of this file.
22 template<
template<
class,
class>
class Container,
class Key,
class T >
32 auto [nIter, suc] = map_.insert(
valueType(iter->first,
nullptr));
37 if(iter->second !=
nullptr)
38 map_[iter->first] = iter->second->clonePtr();
51 template<
template<
class,
class>
class Container,
class Key,
class T >
57 if(
auto iter = map_.find(k); iter!= map_.end() )
63 template<
template<
class,
class>
class Container,
class Key,
class T >
69 if(
auto iter = map_.find(k); iter!= map_.cend() )
75 template<
template<
class,
class>
class Container,
class Key,
class T >
85 "cannot copy new item into MapPtr \n" <<
86 "MapPtr type is "<<
typeid(T).name() <<
endl;
91 template<
template<
class,
class>
class Container,
class Key,
class T >
108 "cannot perform assignment from rhs into MapPtr \n" <<
109 "MapPtr type is "<<
typeid(T).name() <<
endl;
117 template<
template<
class,
class>
class Container,
class Key,
class T >
126 template<
template<
class,
class>
class Container,
class Key,
class T >
135 map_.operator=(std::move(rhs));
140 template<
template<
class,
class>
class Container,
class Key,
class T >
150 auto [iter, success] = map_.insert(
valueType(key,ptr));
155 template<
template<
class,
class>
class Container,
class Key,
class T >
163 if(
auto [iter, success] = map_.insert(
valueType(key,
nullptr)); success)
165 map_[key] = ptr.release();
172 template<
template<
class,
class>
class Container,
class Key,
class T >
173 template<
typename... Args>
180 auto ptr = makeUnique<T>(std::forward<Args>(args)...);
181 return insertReplace(key, ptr);
185 template<
template<
class,
class>
class Container,
class Key,
class T >
193 auto [optr, exist] =
find(key);
198 template<
template<
class,
class>
class Container,
class Key,
class T >
205 auto[optr,exist] =
find(key);
206 map_[key] = ptr.release();
211 template<
template<
class,
class>
class Container,
class Key,
class T >
212 template<
typename... Args>
215 const keyType& key, Args&&... args
218 auto ptr = makeUnique<T>(std::forward<Args>(args)...);
219 return set(key, ptr);
223 template<
template<
class,
class>
class Container,
class Key,
class T >
233 "trying to reach the reference of a nullptr or out of range access the element with key "
240 template<
template<
class,
class>
class Container,
class Key,
class T >
246 const T* p = findPtr(key);
250 "trying to reach the reference of a nullptr or out of range access the element with key "
258 template<
template<
class,
class>
class Container,
class Key,
class T >
264 auto [iter, found] =
find(k);
269 template<
template<
class,
class>
class Container,
class Key,
class T >
275 if(
auto iter = map_.find(k); iter!= map_.end() )
276 return {iter->second,
true};
278 return {
nullptr,
false};
282 template<
template<
class,
class>
class Container,
class Key,
class T >
285 if(
auto iter = map_.find(k); iter!= map_.end() )
286 return {iter->second,
true};
288 return {
nullptr,
false};
292 template<
template<
class,
class>
class Container,
class Key,
class T >
298 auto p = findPtr(key);
304 template<
template<
class,
class>
class Container,
class Key,
class T >
310 if(
auto ptr = findPtr(key); ptr )
319 template<
template<
class,
class>
class Container,
class Key,
class T >
322 for(
auto iter = map_.begin(); iter != map_.end(); ++iter )
324 if(iter->second !=
nullptr)
327 iter->second =
nullptr;
std::pair< const T *, bool > find(const keyType &k) const
#define fatalExit
Fatal exit.
INLINE_FUNCTION_H void copy(const ViewType1D< dType, dProperties... > &dst, const ViewType1D< sType, sProperties... > &src)
int64 find(Vector< T, Allocator > &vec, const T &val)
uniquePtr< T > release(const keyType &k)
bool insertReplaceSafe(const keyType &key, Args &&... args)
T * findPtr(const keyType &k)
iOstream & endl(iOstream &os)
Add newline and flush stream.
typename mapType::const_iterator constIterator
typename mapType::value_type valueType
#define fatalErrorInFunction
Report a fatal error and function name and exit the application.
bool copy(const MapPtrType &src)
T * set(const keyType &key, T *ptr)
typename mapType::key_type keyType
void erase(const keyType &key)
bool search(const keyType k) const
bool insertReplace(const keyType &key, T *ptr)
uniquePtr< T > setSafe(const keyType &key, Args &&... args)