30 #ifndef _GLIBCXX_EXPERIMENTAL_RANDOM
31 #define _GLIBCXX_EXPERIMENTAL_RANDOM 1
37 _GLIBCXX_BEGIN_NAMESPACE_VERSION
39 namespace experimental {
40 inline namespace fundamentals_v2 {
41 #define __cpp_lib_experimental_randint 201511
46 static thread_local default_random_engine __eng{random_device{}()};
51 template<
typename _IntType>
53 randint(_IntType __a, _IntType __b)
55 static_assert(is_integral<_IntType>::value &&
sizeof(_IntType) > 1,
56 "argument must be an integer type");
61 return _Dist(__a, __b)(_S_randint_engine());
67 _S_randint_engine().
seed(random_device{}());
73 _S_randint_engine().
seed(__value);
78 _GLIBCXX_END_NAMESPACE_VERSION