Faker C++
Toggle main menu visibility
Loading...
Searching...
No Matches
random_generator.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <random>
4
#include <type_traits>
5
6
namespace
faker
7
{
8
template
<
typename
T>
9
requires
std::uniform_random_bit_generator<T>
10
11
class
RandomGenerator
12
{
13
public
:
14
RandomGenerator
() :
generator_
{T(std::random_device{}())} {}
15
16
explicit
RandomGenerator
(
const
T& other) :
generator_
{other} {}
17
18
~RandomGenerator
() =
default
;
19
20
RandomGenerator
(
const
RandomGenerator
&) =
default
;
21
RandomGenerator
(
RandomGenerator
&&) =
default
;
22
RandomGenerator
&
operator=
(
const
RandomGenerator
&) =
default
;
23
RandomGenerator
&
operator=
(
RandomGenerator
&&) =
default
;
24
25
template
<
typename
Dist>
26
requires
std::is_invocable_r_v<int, Dist&, T&>
27
28
typename
T::result_type
operator()
(Dist&& dist)
29
{
30
return
static_cast<
typename T::result_type
>
(std::forward<Dist>(dist)(
generator_
));
31
}
32
33
private
:
34
T
generator_
;
35
};
36
}
faker::RandomGenerator::operator()
T::result_type operator()(Dist &&dist)
Definition
random_generator.h:28
faker::RandomGenerator::RandomGenerator
RandomGenerator()
Definition
random_generator.h:14
faker::RandomGenerator::operator=
RandomGenerator & operator=(const RandomGenerator &)=default
faker::RandomGenerator::RandomGenerator
RandomGenerator(const RandomGenerator &)=default
faker::RandomGenerator::RandomGenerator
RandomGenerator(const T &other)
Definition
random_generator.h:16
faker::RandomGenerator::generator_
T generator_
Definition
random_generator.h:34
faker::RandomGenerator::operator=
RandomGenerator & operator=(RandomGenerator &&)=default
faker::RandomGenerator::~RandomGenerator
~RandomGenerator()=default
faker::RandomGenerator::RandomGenerator
RandomGenerator(RandomGenerator &&)=default
faker
Definition
airline.h:9
include
faker-cxx
random_generator.h
Generated by
1.17.0