Taken from FreeBSD. I removed a comment to the effect that C's
_Static_assert, if implemented as a macro,
would not work well with C++ due to the possibility of unshielded
commas appearing in template parameter lists,
explaining why *all* C++ standards are excluded rather than just C++11
and later (where static_assert is a keyword).
I don't see why anyone would expect to combine C++03 or C++98 with C11
features, so I prefer to keep things
short (but I'll happily resubmit if anyone thinks otherwise).
Virtually identical to a patch submitted by Jonathan Gray in October
2016, which received no followup
(so I'll assume it wasn't rejected outright, but simply forgotten about).