std::string
doesn’t have a template type for the allocator. You are stuck using the verbose basic_string
type if you need a special allocator.
But, of course, nobody sane would write that by hand every time. They would use a typedef, like how std::string
is just a typedef for std::basic_string<char, std::char_traits<char>, std::allocator<char>>
. Regardless, the C++ standard library is insanely verbose when you start dropping down into template types and using features at an intermediate level. SFINAE in older versions of C++ was mindfuck on the best of days, for example.
Don’t get me wrong, though. I’m not saying Rust is much better. Its saving grace is its type inference in let
expressions. Without it, chaining functional operations on iterators would be an unfathomable hellscape of Collect<Skip<Map<vec::Iter<Item = &'a str>>>>
Yes. Only in fantasy land. As Logi above said, nuclear detonation is an extremely precise, controlled process that has very specific conditions to achieve successfully. Even an actual fission bomb only manages to consume a fraction of the radioactive material.
The only thing someone would achieve by denotating a conventional explosive near a reactor or nuclear stockpile is spreading highly radioactive dust around. That does not nor will ever look like uncontrolled nuclear fission, let alone a detonation from a thermonuclear warhead.