From 11fff26cde6714645e21698399d7fb898e361d38 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Mon, 4 Mar 2024 23:00:13 +0800 Subject: [PATCH] Implement mandates for `seed_seq::generate` --- stl/inc/random | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/stl/inc/random b/stl/inc/random index 646bcecd35c..879ceb265d3 100644 --- a/stl/inc/random +++ b/stl/inc/random @@ -179,6 +179,11 @@ public: template void generate(_RanIt _First, _RanIt _Last) const { // generate randomized interval from seeds + static_assert(_Is_any_of_v::value_type>, // + unsigned int, unsigned long, unsigned long long>, + "N4971 [rand.util.seedseq]/7 requires the value type of the iterator to be an unsigned type that is at " + "least 32-bit."); + _Adl_verify_range(_First, _Last); auto _UFirst = _Get_unwrapped(_First); const auto _Nx = static_cast(_Get_unwrapped(_Last) - _UFirst);