From Jason Turner

[rand.req]

Diff to HTML by rtfpessoa

tmp/tmp_rfkbo5s/{from.md → to.md} RENAMED
@@ -51,17 +51,18 @@ shown in [[rand.req.seedseq]] are valid and have the indicated
51
  semantics, and if `S` also meets all other requirements of this
52
  subclause [[rand.req.seedseq]]. In that Table and throughout this
53
  subclause:
54
 
55
  - `T` is the type named by `S`’s associated `result_type`;
56
- - `q` is a value of `S` and `r` is a possibly const value of `S`;
 
57
  - `ib` and `ie` are input iterators with an unsigned integer
58
  `value_type` of at least 32 bits;
59
  - `rb` and `re` are mutable random access iterators with an unsigned
60
  integer `value_type` of at least 32 bits;
61
  - `ob` is an output iterator; and
62
- - `il` is a value of `initializer_list<T>`.
63
 
64
  #### Uniform random bit generator requirements <a id="rand.req.urng">[[rand.req.urng]]</a>
65
 
66
  A *uniform random bit generator* `g` of type `G` is a function object
67
  returning unsigned integer values such that each value in the range of
@@ -122,22 +123,22 @@ and have the indicated semantics, and if `E` also meets all other
122
  requirements of this subclause [[rand.req.eng]]. In that Table and
123
  throughout this subclause:
124
 
125
  - `T` is the type named by `E`’s associated `result_type`;
126
  - `e` is a value of `E`, `v` is an lvalue of `E`, `x` and `y` are
127
- (possibly `const`) values of `E`;
128
  - `s` is a value of `T`;
129
  - `q` is an lvalue meeting the requirements of a seed sequence
130
  [[rand.req.seedseq]];
131
  - `z` is a value of type `unsigned long long`;
132
  - `os` is an lvalue of the type of some class template specialization
133
  `basic_ostream<charT,` `traits>`; and
134
  - `is` is an lvalue of the type of some class template specialization
135
  `basic_istream<charT,` `traits>`;
136
 
137
  where `charT` and `traits` are constrained according to [[strings]] and
138
- [[input.output]].
139
 
140
  `E` shall meet the *Cpp17CopyConstructible* (
141
  [[cpp17.copyconstructible]]) and *Cpp17CopyAssignable* (
142
  [[cpp17.copyassignable]]) requirements. These operations shall each be
143
  of complexity no worse than 𝑂(\text{size of state}).
@@ -233,17 +234,17 @@ indicated semantics, and if `D` and its associated types also meet all
233
  other requirements of this subclause [[rand.req.dist]]. In that Table
234
  and throughout this subclause,
235
 
236
  - `T` is the type named by `D`’s associated `result_type`;
237
  - `P` is the type named by `D`’s associated `param_type`;
238
- - `d` is a value of `D`, and `x` and `y` are (possibly `const`) values
239
- of `D`;
240
  - `glb` and `lub` are values of `T` respectively corresponding to the
241
  greatest lower bound and the least upper bound on the values
242
  potentially returned by `d`’s `operator()`, as determined by the
243
  current values of `d`’s parameters;
244
- - `p` is a (possibly `const`) value of `P`;
245
  - `g`, `g1`, and `g2` are lvalues of a type meeting the requirements of
246
  a uniform random bit generator [[rand.req.urng]];
247
  - `os` is an lvalue of the type of some class template specialization
248
  `basic_ostream<charT,` `traits>`; and
249
  - `is` is an lvalue of the type of some class template specialization
@@ -256,11 +257,11 @@ where `charT` and `traits` are constrained according to [[strings]] and
256
  [[cpp17.copyconstructible]]) and *Cpp17CopyAssignable* (
257
  [[cpp17.copyassignable]]) requirements.
258
 
259
  The sequence of numbers produced by repeated invocations of `d(g)` shall
260
  be independent of any invocation of `os << d` or of any `const` member
261
- function of `D` between any of the invocations `d(g)`.
262
 
263
  If a textual representation is written using `os << x` and that
264
  representation is restored into the same or a different object `y` of
265
  the same type using `is >> y`, repeated invocations of `y(g)` shall
266
  produce the same sequence of numbers as would repeated invocations of
 
51
  semantics, and if `S` also meets all other requirements of this
52
  subclause [[rand.req.seedseq]]. In that Table and throughout this
53
  subclause:
54
 
55
  - `T` is the type named by `S`’s associated `result_type`;
56
+ - `q` is a value of type `S` and `r` is a value of type `S` or
57
+ `const S`;
58
  - `ib` and `ie` are input iterators with an unsigned integer
59
  `value_type` of at least 32 bits;
60
  - `rb` and `re` are mutable random access iterators with an unsigned
61
  integer `value_type` of at least 32 bits;
62
  - `ob` is an output iterator; and
63
+ - `il` is a value of type `initializer_list<T>`.
64
 
65
  #### Uniform random bit generator requirements <a id="rand.req.urng">[[rand.req.urng]]</a>
66
 
67
  A *uniform random bit generator* `g` of type `G` is a function object
68
  returning unsigned integer values such that each value in the range of
 
123
  requirements of this subclause [[rand.req.eng]]. In that Table and
124
  throughout this subclause:
125
 
126
  - `T` is the type named by `E`’s associated `result_type`;
127
  - `e` is a value of `E`, `v` is an lvalue of `E`, `x` and `y` are
128
+ (possibly const) values of `E`;
129
  - `s` is a value of `T`;
130
  - `q` is an lvalue meeting the requirements of a seed sequence
131
  [[rand.req.seedseq]];
132
  - `z` is a value of type `unsigned long long`;
133
  - `os` is an lvalue of the type of some class template specialization
134
  `basic_ostream<charT,` `traits>`; and
135
  - `is` is an lvalue of the type of some class template specialization
136
  `basic_istream<charT,` `traits>`;
137
 
138
  where `charT` and `traits` are constrained according to [[strings]] and
139
+ [[input.output]].[^2]
140
 
141
  `E` shall meet the *Cpp17CopyConstructible* (
142
  [[cpp17.copyconstructible]]) and *Cpp17CopyAssignable* (
143
  [[cpp17.copyassignable]]) requirements. These operations shall each be
144
  of complexity no worse than 𝑂(\text{size of state}).
 
234
  other requirements of this subclause [[rand.req.dist]]. In that Table
235
  and throughout this subclause,
236
 
237
  - `T` is the type named by `D`’s associated `result_type`;
238
  - `P` is the type named by `D`’s associated `param_type`;
239
+ - `d` is a value of `D`, and `x` and `y` are (possibly const) values of
240
+ `D`;
241
  - `glb` and `lub` are values of `T` respectively corresponding to the
242
  greatest lower bound and the least upper bound on the values
243
  potentially returned by `d`’s `operator()`, as determined by the
244
  current values of `d`’s parameters;
245
+ - `p` is a (possibly const) value of `P`;
246
  - `g`, `g1`, and `g2` are lvalues of a type meeting the requirements of
247
  a uniform random bit generator [[rand.req.urng]];
248
  - `os` is an lvalue of the type of some class template specialization
249
  `basic_ostream<charT,` `traits>`; and
250
  - `is` is an lvalue of the type of some class template specialization
 
257
  [[cpp17.copyconstructible]]) and *Cpp17CopyAssignable* (
258
  [[cpp17.copyassignable]]) requirements.
259
 
260
  The sequence of numbers produced by repeated invocations of `d(g)` shall
261
  be independent of any invocation of `os << d` or of any `const` member
262
+ function of `D` between any of the invocations of `d(g)`.
263
 
264
  If a textual representation is written using `os << x` and that
265
  representation is restored into the same or a different object `y` of
266
  the same type using `is >> y`, repeated invocations of `y(g)` shall
267
  produce the same sequence of numbers as would repeated invocations of