Use standard C23 and C++ attributes if available
This is related to the C++ compatibility work in [0]/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org.
This patch proposes to use the standard C23 and C++ attributes
[[nodiscard]], [[noreturn]], and [[maybe_unused]], if available.
The immediate practical impact is that for pg_noreturn, we can drop the
GCC-specific and MSVC-specific fallbacks, because the C11 and the C++
implementation will now cover all required cases.
For the other two attributes, this makes them available in
not-GCC-compatible compilers that support C23 as well as in C++. This
set is theoretical at the moment, but it might become more practical if
either MSVC gets some C23 support or we improve the support for C++
extensions with MSVC (see also [0]/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org).
[0]: /messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org
/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org