vkdb
A time series database engine in C++.
Loading...
Searching...
No Matches
random.h
1#ifndef UTILS_RANDOM_H
2#define UTILS_RANDOM_H
3
4#include <vkdb/concepts.h>
5
6#include <random>
7
8namespace vkdb {
19template <ArithmeticNoCVRefQuals T>
20T random(
21 T min = std::numeric_limits<T>::min(),
22 T max = std::numeric_limits<T>::max()
23) noexcept {
24 std::random_device rd;
25 std::mt19937 gen{rd()};
26 if constexpr (std::integral<T>) {
27 std::uniform_int_distribution<T> dist{min, max};
28 return dist(gen);
29 } else {
30 std::uniform_real_distribution<T> dist{min, max};
31 return dist(gen);
32 }
33}
34} // namespace vkdb
35
36#endif // UTILS_RANDOM_H