diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-07-29 16:38:28 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2019-07-29 16:38:28 +0200 |
commit | f1d9a36c5fce23ae9c68e221521a2b492709f8e5 (patch) | |
tree | 1b77a9904ba77f7f94d710a662f9c1b42f46e724 | |
parent | 30a4aca266be7cc065abb6f8ef79c3a3af2f5836 (diff) |
Core/Misc: Remove Trinity::Containers::Size (duplicate of advstd::size)
-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 0454b8d4aad..845ac173fec 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 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); } |