29 phlex::configuration
const& config, std::string
const& component) {
30 auto const configured_seed = config.get_if_present<std::int64_t>(
"seed");
31 if (configured_seed &&
32 (*configured_seed < 0 ||
33 std::cmp_greater(*configured_seed,
34 std::numeric_limits<std::uint32_t>::max()))) {
35 throw std::runtime_error(component +
": seed " +
36 std::to_string(*configured_seed) +
37 " is outside the valid range [0, 4294967295]");
39 auto const seed = configured_seed
40 ?
static_cast<std::uint32_t
>(*configured_seed)
41 :
static_cast<std::uint32_t
>(std::random_device{}());
42 if (!configured_seed) {
44 "{}: no seed configured — drew random seed {}; set 'seed: {}' to "
46 component, seed, seed);