有时一个局部变量仅仅用于在 asser()中检查它,比如-
int Result = Func();
assert( Result == 1 );
在发布版本中编译代码时,断言()通常是禁用的,因此这段代码可能会产生关于正在设置但从未读取的 Result 的警告。
一个可能的解决办法是-
int Result = Func();
if ( Result == 1 )
{
assert( 0 );
}
但它需要太多的类型,不容易的眼睛,并导致条件总是检查(是的,编译器可能优化检查了,但仍然)。
我正在寻找一种替代方法来表达这种断言() ,这种方法不会引起警告,但仍然易于使用,并且可以避免改变断言()的语义。
(在此代码区域使用 # 杂注禁用警告不是一个选项,降低警告级别以消除警告也不是一个选项... ...)。