C++ nodiscard attribute

C++17 and C23 added the [[nodiscard]] attribute to indicate that the result of a function call should not be ignored. Use care not to overspecify [[nodiscard]] on functions that are not intended to be used in a way that requires the result to be used, as this can make nuisance warnings.

Example: annotate function declaration in the header file with [[nodiscard]] attribute.

[[nodiscard]] int one();
int one() { return 1; }