17 #ifndef FOLLY_RANDOM_H_ 18 #error This file may only be included from folly/Random.h 30 template <
class RNG,
typename =
void>
33 using type = std::integral_constant<size_t, 512>;
38 using type = std::integral_constant<size_t, RNG::state_size>;
41 template <
class UIntType, UIntType a, UIntType c, UIntType m>
42 struct StateSize<
std::linear_congruential_engine<UIntType, a, c, m>> {
46 using type = std::integral_constant<
48 (std::numeric_limits<UIntType>::digits + 31) / 32 + 3>;
51 template <
class UIntType,
size_t w,
size_t s,
size_t r>
52 struct StateSize<
std::subtract_with_carry_engine<UIntType, w, s, r>> {
54 using type = std::integral_constant<size_t, r*((w + 31) / 32)>;
57 template <
typename RNG>
72 template <
class RNG,
class >
79 template <
class RNG,
class >
std::integral_constant< size_t, 512 > type
static std::enable_if< std::is_integral< T >::value &&!std::is_same< T, bool >::value, T >::type secureRandom()
auto begin(TestAdlIterable &instance)
—— Concurrent Priority Queue Implementation ——
_t< StateSize< RNG >> StateSizeT
auto end(TestAdlIterable &instance)
type_t< void, Ts... > void_t
static void seed(RNG &rng)
std::integral_constant< size_t, r *((w+31)/32)> type
std::integral_constant< size_t,(std::numeric_limits< UIntType >::digits+31)/32+3 > type
std::array< uint32_t, stateSize > seedData
std::integral_constant< size_t, RNG::state_size > type