23 static constexpr T
mask() {
return T(0); }
28 static constexpr uint8_t
mask() {
return 0xff; }
33 static constexpr uint16_t
mask() {
return 0xffff; }
38 static constexpr uint32_t
mask() {
return 0xffffffffUL; }
43 static constexpr uint64_t
mask() {
return 0xffffffffffffffffULL; }
62 return (hi << 64) + lo;
127 return generate_random_uint<uint8_t>(rng);
132 return generate_random_uint<uint16_t>(rng);
137 return generate_random_uint<uint32_t>(rng);
142 return generate_random_uint<uint64_t>(rng);
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
unsigned __int128 uint128_t
static constexpr uint16_t mask()
static constexpr uint32_t mask()
static constexpr uint64_t mask()
static constexpr uint8_t mask()
static constexpr bool has_mask
static constexpr T mask()
static void mutate(T &value, std::mt19937_64 &rng)
static void mutate(T &value)
static void mutate(T &value)
static void mutate(std::mt19937_64 &rng, T &value)
uint64_t generate_random_uint64(std::mt19937_64 &rng)
uint128_t generate_random_uint128(std::mt19937_64 &rng)
uint32_t generate_random_uint32(std::mt19937_64 &rng)
void mutate_uint(T &value, std::mt19937_64 &rng, const ConfigType &config)
std::enable_if< std::is_integral< T >::value &&std::is_unsigned< T >::value, T >::type generate_random_uint(std::mt19937_64 &rng)
uint16_t generate_random_uint16(std::mt19937_64 &rng)
uint128_t generate_random_uint< uint128_t >(std::mt19937_64 &rng)
uint8_t generate_random_uint8(std::mt19937_64 &rng)