https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82584
--- Comment #1 from Nathan Sidwell <nathan at gcc dot gnu.org> --- The make_unique bit's irrelevant: std::discrete_distribution<int32_t> X (weights.begin(), weights.end()); is sufficient. Reading 29.6.8.6.1 suggests the code is well formed, but all (two) probabilites are zero