mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-29 21:32:52 +01:00
Core/Random: Remove no longer needed hack for VS 2013
(cherry picked from commit 59fe908744)
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
|
||||
#include "Define.h"
|
||||
#include "Random.h"
|
||||
#include "Util.h"
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
#include <list>
|
||||
@@ -84,8 +83,7 @@ namespace Trinity
|
||||
template <class C>
|
||||
typename C::const_iterator SelectRandomWeightedContainerElement(C const& container, std::vector<double> weights)
|
||||
{
|
||||
Trinity::discrete_distribution_param<uint32> ddParam(weights.begin(), weights.end());
|
||||
std::discrete_distribution<uint32> dd(ddParam);
|
||||
std::discrete_distribution<uint32> dd(weights.begin(), weights.end());
|
||||
typename C::const_iterator it = container.begin();
|
||||
std::advance(it, dd(SFMTEngine::Instance()));
|
||||
return it;
|
||||
|
||||
@@ -74,26 +74,4 @@ public:
|
||||
static SFMTEngine& Instance();
|
||||
};
|
||||
|
||||
// Ugly, horrible, i don't even..., hack for VS2013 to work around missing discrete_distribution(iterator, iterator) constructor
|
||||
namespace Trinity
|
||||
{
|
||||
#if COMPILER == COMPILER_MICROSOFT && _MSC_VER <= 1800
|
||||
template<typename T>
|
||||
struct discrete_distribution_param : public std::discrete_distribution<T>::param_type
|
||||
{
|
||||
typedef typename std::discrete_distribution<T>::param_type base;
|
||||
|
||||
template<typename InIt>
|
||||
discrete_distribution_param(InIt begin, InIt end) : base(_Noinit())
|
||||
{
|
||||
this->_Pvec.assign(begin, end);
|
||||
this->_Init();
|
||||
}
|
||||
};
|
||||
#else
|
||||
template<typename T>
|
||||
using discrete_distribution_param = typename std::discrete_distribution<T>::param_type;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // Random_h__
|
||||
|
||||
Reference in New Issue
Block a user