Faker C++
Loading...
Searching...
No Matches
RandomGenerator.h
Go to the documentation of this file.
1#pragma once
2
3#include <random>
4#include <type_traits>
5
6namespace faker
7{
8template <typename T>
9 requires std::uniform_random_bit_generator<T>
11{
12public:
13 RandomGenerator() : generator_{T(std::random_device{}())} {}
14
15 ~RandomGenerator() = default;
16
21
22 template <typename Dist>
23 requires std::is_invocable_r_v<int, Dist&, T&>
24 int operator()(Dist&& dist)
25 {
26 return std::forward<Dist>(dist)(generator_);
27 }
28
29private:
31};
32}
Definition RandomGenerator.h:11
int operator()(Dist &&dist)
Definition RandomGenerator.h:24
RandomGenerator()
Definition RandomGenerator.h:13
RandomGenerator & operator=(const RandomGenerator &)=default
RandomGenerator(const RandomGenerator &)=default
T generator_
Definition RandomGenerator.h:30
RandomGenerator & operator=(RandomGenerator &&)=default
RandomGenerator(RandomGenerator &&)=default
Definition Airline.h:7