diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-07-29 16:38:28 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-17 21:57:41 +0100 |
commit | 3388cea685d754fae8b7495473978f9e4f7cfed6 (patch) | |
tree | 653e95466605bfa12520157c69417937fccb0162 /src/common/Utilities/Containers.h | |
parent | 77eaa2c1ac650249243bb9934fc600225afeee31 (diff) |
Core/Misc: Remove Trinity::Containers::Size (duplicate of advstd::size)
(cherry picked from commit f1d9a36c5fce23ae9c68e221521a2b492709f8e5)
Diffstat (limited to 'src/common/Utilities/Containers.h')
-rw-r--r-- | src/common/Utilities/Containers.h | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/src/common/Utilities/Containers.h b/src/common/Utilities/Containers.h index 4d376a8eb38..9c2f7849923 100644 --- a/src/common/Utilities/Containers.h +++ b/src/common/Utilities/Containers.h @@ -71,29 +71,16 @@ namespace Trinity namespace Containers { - // replace with std::size in C++17 - template<class C> - constexpr inline std::size_t Size(C const& container) - { - return container.size(); - } - - template<class T, std::size_t size> - constexpr inline std::size_t Size(T const(&)[size]) noexcept - { - return size; - } - // resizes <container> to have at most <requestedSize> elements // if it has more than <requestedSize> elements, the elements to keep are selected randomly template<class C> void RandomResize(C& container, std::size_t requestedSize) { static_assert(std::is_base_of<std::forward_iterator_tag, typename std::iterator_traits<typename C::iterator>::iterator_category>::value, "Invalid container passed to Trinity::Containers::RandomResize"); - if (Size(container) <= requestedSize) + if (advstd::size(container) <= requestedSize) return; auto keepIt = std::begin(container), curIt = std::begin(container); - uint32 elementsToKeep = requestedSize, elementsToProcess = Size(container); + uint32 elementsToKeep = requestedSize, elementsToProcess = advstd::size(container); while (elementsToProcess) { // this element has chance (elementsToKeep / elementsToProcess) of being kept @@ -132,7 +119,7 @@ namespace Trinity inline auto SelectRandomContainerElement(C const& container) -> typename std::add_const<decltype(*std::begin(container))>::type& { auto it = std::begin(container); - std::advance(it, urand(0, uint32(Size(container)) - 1)); + std::advance(it, urand(0, uint32(advstd::size(container)) - 1)); return *it; } @@ -165,7 +152,7 @@ namespace Trinity inline auto SelectRandomWeightedContainerElement(C const& container, Fn weightExtractor) -> decltype(std::begin(container)) { std::vector<double> weights; - weights.reserve(Size(container)); + weights.reserve(advstd::size(container)); double weightSum = 0.0; for (auto& val : container) { @@ -174,7 +161,7 @@ namespace Trinity weightSum += weight; } if (weightSum <= 0.0) - weights.assign(Size(container), 1.0); + weights.assign(advstd::size(container), 1.0); return SelectRandomWeightedContainerElement(container, weights); } |