在 c++03 及更早版本中,为了禁用关于未使用参数的编译器警告,我通常使用这样的代码:
#define UNUSED(expr) do { (void)(expr); } while (0)
例如
int main(int argc, char *argv[])
{
UNUSED(argc);
UNUSED(argv);
return 0;
}
但是宏不是 C++ 的最佳实践,所以。 c++11标准有没有更好的解决方案?我的意思是我可以摆脱宏吗?
谢谢大家!
最佳答案
你可以省略参数名称:
int main(int, char *[])
{
return 0;
}
在 main 的情况下,你甚至可以完全省略参数:
int main()
{
// no return implies return 0;
}
请参阅 C++11 标准中的“§ 3.6 开始和终止”。
关于c++ - c++11中未使用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763937/