Although the default behaviour for C and C++ is to not diagnose ignored function
calls, we can make this the default by using `#pragma clang attribute
push([[nodiscard]], apply_to = function)`. When we have a function that can
have its value discarded, we can use [[clang::discardable]] to indicate that
the `[[nodiscard]]` attribute should be ignored.
[[clang::discardable]] can be placed anywhere [[nodiscard]] is allowed,
but the presence of either is prioritised when it's applied to a callable.