GENEIAL  0.2=/
 All Classes Pages
Random.h
1 #pragma once
2 
3 #include <geneial/namespaces.h>
4 
5 geneial_private_namespace(geneial)
6 {
7 geneial_private_namespace(utility)
8 {
9 
10 geneial_export_namespace
11 {
12 
13 class Random
14 {
15  Random() = delete;
16  Random(const Random&) = delete;
17 public:
18  static inline bool generateBit();
19 
20  static inline bool decision(const double probability);
21 
22  template<typename T>
23  static inline T generate(const T min,const T max);
24 
25  template<typename T>
26  static inline T generate();
27 
28  virtual ~Random()
29  {
30  }
31 
32  void static initialize();
33 protected:
34  static bool sInitialized;
35 
36  static inline void checkInitialized()
37  {
38  if (!sInitialized)
39  {
40  initialize();
41  }
42  }
43 
44 };
45 
46 } /* geneial_export_namespace */
47 } /* private namespace utility */
48 } /* private namespace geneial */
49 
50 #include <geneial/utility/Random.hpp>