为什么 void 以这种方式与内联函数一起使用

Why is void used in this manner with an inline function?

本文关键字:函数 一起 void 方式 为什么      更新时间:2023-10-16

我只是在一些示例代码中遇到了这个问题,我以前从未见过它使用过。对于返回类型但不使用返回值的内联函数,作者在调用前面加上(void)。这真的有什么作用吗?

例:

inline some_object& SomeClass::doSomething();
SomeClass o;
(void)o.doSomething();

这通常是在使用 Lint 等工具时完成的,该工具已配置为在调用函数并忽略其返回值时发出警告。

这是(IMO)一种可怕的做法,由一些工具1助长,这些工具发出有关调用函数并忽略其返回内容的警告。

处理该问题的正确方法是为工具提供一个函数列表,这些函数的返回值可以合理地忽略。如果该工具不支持这一点,它可能毫无用处,应该扔掉。对于编译器,您可能无法丢弃工具本身,并且可能不得不满足于全局禁用该警告。


1.大多数情况下,类似于lint,但一些编译器也可以这样做。