Core/Random: Remove no longer needed hack for VS 2013

(cherry picked from commit 59fe908744)
This commit is contained in:
Shauren
2016-09-01 11:52:08 +02:00
committed by Aokromes
parent 4dc2ffadc8
commit ed95f9249b
2 changed files with 1 additions and 25 deletions

View File

@@ -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;

View File

@@ -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__