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