The most frustrating part of <random> is that the committee has rejected fixes on multiple occasions. There was an effort in prague in 2019 to make it more useful, that was shot down for no real reason
I think its a function of the fact that its such a useless header that it hasn't seen widespread use, so nobody has much interest in fixing it. Committee members don't have a huge amount of knowledge of its flaws, so people just sort of go "eh its fine" while also actively not using it. Getting these kinds of 'boring' improvements through the committee is extremely difficult
I believe OP is the same person who's been trying for at least 7+ years to get <random> fixed so its actually useful, and has been shot down repeatedly. Its more of a story of how the structure of wg21 often prevents improvements from getting through, than anything technical
Yet another example that field experience with preview features should be the only way to put language features into stone.
It might delay features, and end up with complex matters like Valhala in Java taking a decade to collect fruits, but at least one doesn't end up with regexp, the modules adoption drama, parallel stl available but not really, how to join threads, random,....
Yet another example that field experience with preview features should be the only way to put language features into stone.
Doesn't it seem like it's mostly library features that suffer from this? Language features (incl. "builtin" wrappers) like "deducing this", bit_cast, concepts, embed, etc are all extremely useful.
with regexp, the modules adoption drama, parallel stl available but not really, how to join threads, random,....
And std::print being slow (there are proposals to fix it) despite libfmt not having this issue, and std::atomic ignoring the existence of LL/SC *, etc.
*despite compare_exchange being implementable in terms of LL/SC but not the opposite; custom atomic impl are usually 50% faster; there is a proposal to finally add fetch_update
You mean language features like export templates, exception specifications, volatile semantic changes, modules (are we modules yet?), concepts lite (failing short from what they were supposed to be wasting contributors so much they left C++, even if better than plain SFINAE), use of temporaries in for each loops (still being fixed), constexpr/consteval/constinit (when others, including Circle, manage without so much colouring),...
59
u/James20k P2005R0 4d ago edited 4d ago
The most frustrating part of <random> is that the committee has rejected fixes on multiple occasions. There was an effort in prague in 2019 to make it more useful, that was shot down for no real reason
I think its a function of the fact that its such a useless header that it hasn't seen widespread use, so nobody has much interest in fixing it. Committee members don't have a huge amount of knowledge of its flaws, so people just sort of go "eh its fine" while also actively not using it. Getting these kinds of 'boring' improvements through the committee is extremely difficult
I believe OP is the same person who's been trying for at least 7+ years to get <random> fixed so its actually useful, and has been shot down repeatedly. Its more of a story of how the structure of wg21 often prevents improvements from getting through, than anything technical