int fn();
void whatever()
{
(void) fn();
}
是否有任何理由将未使用的返回值强制转换为 void,还是我认为这完全是浪费时间?
最佳答案
大卫的answer几乎涵盖了这样做的动机,明确地向其他“开发人员”表明您知道此函数返回但您明确忽略它。
这是一种确保始终处理必要的错误代码的方法。
我认为对于 C++,这可能是我也更喜欢使用 C 风格强制转换的唯一地方,因为在这里使用完整的静态强制转换表示法感觉有点矫枉过正。最后,如果您正在审查或编写编码标准,那么明确声明对重载运算符(不使用函数调用表示法)的调用也应该免除这一点也是一个好主意:
class A {};
A operator+(A const &, A const &);
int main () {
A a;
a + a; // Not a problem
(void)operator+(a,a); // Using function call notation - so add the cast.
关于c++ - 为什么将未使用的返回值转换为 void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434072/