MySQL 9.0.0
Source Code Documentation
|
Go to the source code of this file.
Macros | |
#define | NODISCARD nodiscard |
The function attribute [[NODISCARD]] is a replacement for [[nodiscard]] to workaround a gcc bug. More... | |
#define NODISCARD nodiscard |
The function attribute [[NODISCARD]] is a replacement for [[nodiscard]] to workaround a gcc bug.
This attribute can appear before a function declaration, and makes it mandatory for the caller to use the return value. Use this on functions where it is always essential to check if an error occurred.
It would be better if we could use [[nodiscard]], but gcc has a bug that makes it ineffective is some cases: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84476 OTOH, gnu::warn_unused_result is unaffected by the bug. Once the bug is fixed, and we drop support for compiler versions that have the bug, we can replace [[NODISCARD]] by [[nodiscard]].
MSVC gives a warning for gnu::warn_unused_result because it does not recognize it, so we use gnu::warn_unused_result only on gnuc.