feat(Core/Containers): MapGetValuePtr (#6111)

* feat(Core/Containers): MapGetValuePtr

* Added MapGetValuePtr to allow writing `if (Val* v = MapGetValuePtr(map, key))`

(cherry picked from commit a1e3b54e07)
Co-Authored-By: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
Kitzunu
2021-05-30 06:19:37 +02:00
committed by GitHub
parent a9ed64e600
commit 07d0f654d5

View File

@@ -165,6 +165,16 @@ namespace acore::Containers
return SelectRandomWeightedContainerElement(container, weights);
}
/**
* Returns a pointer to mapped value (or the value itself if map stores pointers)
*/
template<class M>
inline auto MapGetValuePtr(M& map, typename M::key_type const& key) -> decltype(AddressOrSelf(map.find(key)->second))
{
auto itr = map.find(key);
return itr != map.end() ? AddressOrSelf(itr->second) : nullptr;
}
/*
* @fn void acore::Containers::RandomShuffle(C& container)
*