Fix the stage2 MSVC 2013 build with less constexpr in RNG

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283954 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner 2016-10-11 23:02:21 +00:00
parent 13a7e10301
commit 47b7d1a540

View File

@ -43,8 +43,19 @@ public:
/// Returns a random number in the range [0, Max).
result_type operator()();
static LLVM_CONSTEXPR result_type min() { return generator_type::min(); }
static LLVM_CONSTEXPR result_type max() { return generator_type::max(); }
// We can only make min/max constexpr if generator_type::min/max are
// constexpr. The MSVC 2013 STL does not make these constexpr, so we have to
// avoid declaring them as constexpr even if the compiler, like clang-cl,
// supports it.
#if defined(_MSC_VER) && _MSC_VER < 1900
#define STL_CONSTEXPR
#else
#define STL_CONSTEXPR LLVM_CONSTEXPR
#endif
static STL_CONSTEXPR result_type min() { return generator_type::min(); }
static STL_CONSTEXPR result_type max() { return generator_type::max(); }
private:
/// Seeds and salts the underlying RNG engine.