<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/84843>84843</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] `<random>`: Enforce `seed_seq::generate()`'s mandate for `RandomAccessIterator`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
StephanTLavavej
</td>
</tr>
</table>
<pre>
[N4971](https://isocpp.org/files/papers/N4971.pdf) \[rand.util.seedseq\]/7:
> ```cpp
> template<class RandomAccessIterator>
> void generate(RandomAccessIterator begin, RandomAccessIterator end);
> ```
> *Mandates:* `iterator_traits<RandomAccessIterator>::value_type` is an unsigned integer type capable of accommodating 32-bit quantities.
This example should be rejected, but isn't: https://godbolt.org/z/86qrr5PEa
```cpp
#include <random>
int main() {
std::seed_seq seq;
int arr[1];
seq.generate(arr, arr + 1); // should be rejected!
}
```
(MSVC's STL was also affected: https://github.com/microsoft/STL/issues/4434 )
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8lN-P4yYQx_-a8ctoLRvsOH7wQ35spEp7VdVd9XWFYZxwwuAATnv96yucXDfbS09CJGF-ZPh-ZhAh6KMl6qDeQr3PxBxPznevkaaTsG8v4iIu9DXrnfqWXH6t2qaEeg9sfYpxCsA3wA7ADjo4OU2580dgh0EbCsAOk5jIpy9LWD6pAViLUO-g3nphVT5HbfJApAKdl-M9sEOTkhZ7KL7v_BlhVVyXnKaP00jjZEQk4DtpRAj4u7DKjRspKYRfInkRnQf-_BGBeHFa4ZFsMhKw9aMQ7OmoLbDdw4RIVgFrgW8f1Hd3xDZfhFUi0lWlTXLStxzv0QsdA_Dd_5XMN8A3F2Fmeo_fJoJVgTqgsDjbhZhCbSMdyWMyoxST6A2hG1BI6cbRKRG1PSJnT72OeJ6FjTpqCvm9tm8nHZD-EuNkCMPJzUZhT-jpK8lIKknQzxF1sMCaCHyDn7EfneqdiTfufwM7rFdn7-vfnsUnhD_iY1xbaWZFCHznFxE-SC27thFHkTisl7ZpbnojIoaorgql5nkPdMbUQfzOI0UL76HeLv36rynQOb_Dn1zYLnkisC2WV7B4vd1DRcpbjc3-P3f7dGG2_vL6xw5YE_D17QX_FAGFCQ7FMFzz_Ciljqe5z6UbgR1GLb0LbojADq9vL8uAhXkZqqriFQJrM9Vx1fJWZNSVTVmUbV02ZXbqKt7UteCyHUgWq0YNouhXVCnZs2HdS57pjhWsKnhZMlayusyHVd0ObSlZXchW9gVUBY1Cm9yYy5jYZsu_d-tqXfHMiJ5MWB4MxozuJbDtslh6QHyXgp76-RigKowOMXykiTqa5am5C6v3y_TcN0H6ucFnOzgvKVm_U74yv8OXcK2KRebxOmw4OJ9CHs7Vqshmb7qfCJ9KvX08Td4l6PfiLwr8EwAA___rc5F_">