13 #ifndef __UT_StringMap_h__
14 #define __UT_StringMap_h__
26 #define UT_STRINGREF_WRAPPER(return_type, name, qualifier) \
27 SYS_FORCE_INLINE return_type name(const UT_StringRef &key) qualifier \
29 return Parent::name(UTmakeUnsafeRef(key)); \
34 #define UT_STRINGREF_WRAPPER_RANGE(iterator_type, name, qualifier) \
35 SYS_FORCE_INLINE std::pair<iterator_type, iterator_type> \
36 name(const UT_StringRef &key) qualifier \
38 return Parent::name(UTmakeUnsafeRef(key)); \
45 template <
typename ITEM_T>
61 return Parent::erase(first, last);
81 template <typename ITEM_T>
94 void erase(const_iterator pos) { Parent::erase(pos); }
97 Parent::erase(first, last);
115 #undef UT_STRINGREF_WRAPPER
116 #undef UT_STRINGREF_WRAPPER_RANGE
void erase(const_iterator pos)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
Parent::size_type size_type
#define UT_STRINGREF_WRAPPER(return_type, name, qualifier)
ITEM_T get(const key_type &key, const ITEM_T &defval) const
Parent::iterator iterator
iterator erase(const_iterator first, const_iterator last)
Parent::iterator iterator
Same as UT_StringMap, but keeps the strings in a sorted order.
SYS_FORCE_INLINE const UT_StringHolder & UTmakeUnsafeRef(const UT_StringRef &ref)
Convert a UT_StringRef into a UT_StringHolder that is a shallow reference.
iterator erase(const_iterator pos)
Base::const_iterator const_iterator
void erase(const_iterator first, const_iterator last)
Parent::const_iterator const_iterator
__hostdev__ uint64_t last(uint32_t i) const
Parent::size_type size_type
Base::const_iterator const_iterator
Parent::const_iterator const_iterator
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool
bool contains(const key_type &key) const
Returns true if a value with the key is contained in the map.
#define UT_STRINGREF_WRAPPER_RANGE(iterator_type, name, qualifier)