X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FRandom-inl.h;h=405ef1ffa189798b86566b3329d1bdadccab3139;hb=a857f83b2b25f42eeba1524ebca1bd2e74abc71a;hp=c77633840eb255bf5828edbe63424f925d1b11fe;hpb=275ca94d04e44f28cfa411668eb1c1dd8db90b80;p=folly.git diff --git a/folly/Random-inl.h b/folly/Random-inl.h index c7763384..405ef1ff 100644 --- a/folly/Random-inl.h +++ b/folly/Random-inl.h @@ -1,5 +1,5 @@ /* - * Copyright 2015 Facebook, Inc. + * Copyright 2017 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,8 @@ #error This file may only be included from folly/Random.h #endif +#include + namespace folly { namespace detail { @@ -67,7 +69,7 @@ constexpr size_t StateSize>::value; -#if FOLLY_USE_SIMD_PRNG +#if FOLLY_HAVE_EXTRANDOM_SFMT19937 template >::value; template struct SeedData { SeedData() { - Random::secureRandom(seedData.begin(), seedData.size() * sizeof(uint32_t)); + Random::secureRandom(seedData.data(), seedData.size() * sizeof(uint32_t)); } static constexpr size_t stateSize = StateSize::value; @@ -116,15 +118,15 @@ struct SeedData { } // namespace detail -template -void Random::seed(ValidRNG& rng) { +template +void Random::seed(RNG& rng) { detail::SeedData sd; std::seed_seq s(std::begin(sd.seedData), std::end(sd.seedData)); rng.seed(s); } -template -auto Random::create() -> ValidRNG { +template +auto Random::create() -> RNG { detail::SeedData sd; std::seed_seq s(std::begin(sd.seedData), std::end(sd.seedData)); return RNG(s);