C++ concepts: RandomNumberDistribution
From cppreference.com
                    
                                        
                    
                    
                                                            
                    A RandomNumberDistribution is a function object returning random numbers according to a probability density function p(x) or a discrete probability distribution P(x
i).
[edit] Requirements
| This section is incomplete | 
-  
Dis a class meeting theRandomNumberDistributionrequirements. It shall also satisfy theCopyConstructibleandCopyAssignablerequirements. -  
Tis the associatedresult_type. -  
Pis the associatedparam_type. It shall satisfy theCopyConstructible,CopyAssignable, andEqualityComparablerequirements. -  
dis an object ofDandx,yare potentially const objects ofD. -  
pis a possibly constant value ofP. -  
g,g1,g2are lvalues meeting theUniformRandomNumberGeneratorconcept. -  
osis an lvalue of std::basic_ostream. -  
isis an lvalue of std::basic_istream. 
| Expression | Type | Notes | Complexity | 
|---|---|---|---|
D::result_type  | 
 T  | 
An arithmetic type | compile-time | 
D::param_type  | 
 P  | 
compile-time | |
D()  | 
constant | ||
D(p)  | 
 Same as p's construction
 | 
||
d.reset()  | 
 void  | 
 Resets the internal state of the distribution object. After a call to this function, the next call to operator() on the distribution object will not be dependent on previous calls to operator().  | 
constant | 
x.param()  | 
 P  | 
 No worse than D(p)
 | 
|
d.param(p)  | 
 void  | 
 No worse than D(p)
 | 
|
d(g)  | 
 T  | 
 d(g, d.param())  | 
 Same as d(g, d.param())
 | 
d(g,p)  | 
 T  | 
 When called with the same g and p parameter it returns a sequence of numbers distributed according to p(x;p) or P(xi; p)  | 
 Amortized constant number of incovations of g
 | 
x.min()  | 
 T  | 
 The greatest lower bound returned by operator()  | 
constant | 
x.max()  | 
 T  | 
 The least upper bound returned by operator()  | 
constant | 
x == y  | 
 bool  | 
constant | |
y != y  | 
 bool  | 
 !(x == y)  | 
constant | 
os << x  | 
 Reference to the type of os  | 
 Writes a textual representation of the distribution parameters and internal state to os as textual representation. The formatting flags and fill character of os are unchanged.  | 
|
is >> d  | 
 Reference to the type of is  | 
 Restores the distribution parameters and internal state with data read from is. The formatting flags of is are unchanged. The data must have been written using a stream with the same locale, CharT and Traits template parameters, otherwise the behavior is undefined. If bad input is encountered, is.setstate(std::ios::failbit) is called, which may throw std::ios_base::failure. d is unchanged in that case.  |