为什么 void 以这种方式与内联函数一起使用
Why is void used in this manner with an inline function?
我只是在一些示例代码中遇到了这个问题,我以前从未见过它使用过。对于返回类型但不使用返回值的内联函数,作者在调用前面加上(void)
。这真的有什么作用吗?
例:
inline some_object& SomeClass::doSomething();
SomeClass o;
(void)o.doSomething();
这通常是在使用 Lint 等工具时完成的,该工具已配置为在调用函数并忽略其返回值时发出警告。
这是(IMO)一种可怕的做法,由一些工具1助长,这些工具发出有关调用函数并忽略其返回内容的警告。
处理该问题的正确方法是为工具提供一个函数列表,这些函数的返回值可以合理地忽略。如果该工具不支持这一点,它可能毫无用处,应该扔掉。对于编译器,您可能无法丢弃工具本身,并且可能不得不满足于全局禁用该警告。
1.大多数情况下,类似于lint
,但一些编译器也可以这样做。
相关文章:
- 将 std::map::emplace 与返回 shared_ptr 的函数一起使用是否正确?
- 将新放置与 std::函数一起使用不起作用
- C++ 如何将关键字"friend"与两个类的成员函数一起使用 相互包含
- 为什么引用不能与编译时函数一起使用?
- 将自动类型化 lambda 与模板化函数一起使用 - 在 g++ 5.4 中使用自动模板推导
- 我们可以将 Rcpp 与多个C++函数一起使用吗?
- 反转 C++ 中的 std::string 如何与此构造函数一起使用?
- 是否可以在C++中将两个函数一起添加
- 当没有显式关键字与单参数构造函数一起使用时,编译器可以发出警告
- 如何将两个类成员函数与同一类中的另一个函数一起添加
- 我可以将CRTP与虚拟函数或函数一起使用,以供访问者算法更改的访问者算法
- 将指令与模板化成员函数一起使用
- 如何将提升regex_replace与 lambda 函数一起使用
- 为什么复制构造函数与移动构造函数一起调用?
- 将指针与getline()函数一起使用
- 将GoogleTest与通过STD :: CIN从用户输入的函数一起使用
- GCC 中的编译器错误,但在将 decltype 与具有尾随返回类型语法的模板化成员函数一起使用时没有 clang
- 将异步与多态成员函数一起使用
- 将 argv 与函数一起使用时出错
- 为什么 void 以这种方式与内联函数一起使用