我想像这样创建一个有意义的断言:
assert(("precondition failed", false));
它在 GCC 下工作正常,但 Clang 警告我未使用的值,值为"precondition failed"
。
你们知道在代码中禁用此警告的方法(请不要使用命令行参数或非可移植代码)?重写断言也是一个很好的答案。
答案 0 :(得分:4)
以下是两种方法,即使使用-Wall -Wextra pedantic
也不会产生任何警告:
assert(((void)"precondition failed", false)); // #1
assert("precondition failed" && false); // #2