nodiscard - use to signal wrong use of the API and add character literal argument
maybe_unused - use when needed and consider replacing your existent solutions
reproducible - equivalent to gnu::pure . Effectless (function has no observale side effects) and idempotent (repeated evaluation gives the same result). Assumed and optimised accordingly. If the assumption does not hold undefined behavior happens. Use only if you are sure what you are doing.
unsequenced - equivalent to gnu::const . Stateless (function does not define mutable static or thread local objects), effectless, idempotent and independent (does not depend on other state than the argument and constants). Assumed and optimised accordingly. If the assumption does not hold undefined behavior happens. Use only if you are sure what you are doing.