https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116866
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
If we add [[nodiscard]] to the constructors of the standard exception types
then we get a warning with no compiler changes needed:
struct Exception
{
[[nodiscard]] Exception(const char*) { }
};
int divide(int num, int denom) {
if (denom == 0)
{
Exception("division by zero");
}
return num / denom;
}
It should work to do `struct [[nodiscard]] Exception` instead of putting it on
each constructor, but that's PR 85973