From Jason Turner

[rand.eng.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp7w0ufol0/{from.md → to.md} +50 -0
tmp/tmp7w0ufol0/{from.md → to.md} RENAMED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### General <a id="rand.eng.general">[[rand.eng.general]]</a>
2
+
3
+ Each type instantiated from a class template specified in [[rand.eng]]
4
+ meets the requirements of a random number engine [[rand.req.eng]] type.
5
+
6
+ Except where specified otherwise, the complexity of each function
7
+ specified in [[rand.eng]] is constant.
8
+
9
+ Except where specified otherwise, no function described in [[rand.eng]]
10
+ throws an exception.
11
+
12
+ Every function described in [[rand.eng]] that has a function parameter
13
+ `q` of type `Sseq&` for a template type parameter named `Sseq` that is
14
+ different from type `seed_seq` throws what and when the invocation of
15
+ `q.generate` throws.
16
+
17
+ Descriptions are provided in [[rand.eng]] only for engine operations
18
+ that are not described in [[rand.req.eng]] or for operations where there
19
+ is additional semantic information. In particular, declarations for copy
20
+ constructors, for copy assignment operators, for streaming operators,
21
+ and for equality and inequality operators are not shown in the synopses.
22
+
23
+ Each template specified in [[rand.eng]] requires one or more
24
+ relationships, involving the value(s) of its non-type template
25
+ parameter(s), to hold. A program instantiating any of these templates is
26
+ ill-formed if any such required relationship fails to hold.
27
+
28
+ For every random number engine and for every random number engine
29
+ adaptor `X` defined in [[rand.eng]] and in [[rand.adapt]]:
30
+
31
+ - if the constructor
32
+ ``` cpp
33
+ template<class Sseq> explicit X(Sseq& q);
34
+ ```
35
+
36
+ is called with a type `Sseq` that does not qualify as a seed sequence,
37
+ then this constructor shall not participate in overload resolution;
38
+ - if the member function
39
+ ``` cpp
40
+ template<class Sseq> void seed(Sseq& q);
41
+ ```
42
+
43
+ is called with a type `Sseq` that does not qualify as a seed sequence,
44
+ then this function shall not participate in overload resolution.
45
+
46
+ The extent to which an implementation determines that a type cannot be a
47
+ seed sequence is unspecified, except that as a minimum a type shall not
48
+ qualify as a seed sequence if it is implicitly convertible to
49
+ `X::result_type`.
50
+